English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Diferencia entre缓冲区 de cadena y generador de cadenas en Java

Las áreas de memoria de cadena y StringBuilder son clases mutables que se pueden usar para realizar operaciones en objetos de cadena, como revertir la cadena, comprimir la cadena, etc. Podemos modificar la cadena sin crear un nuevo objeto de cadena. El área de memoria de cadena es segura para subprocesos, mientras que el generador de cadenas no es seguro para subprocesos. Por lo tanto, es más rápido que el área de memoria de cadena. Además, la concatenación de cadenas +Los operadores utilizan internamente la clase StringBuffer o StringBuilder. Aquí hay una diferencia.

NúmeroClaveBuffer de cadenasGenerador de cadenas
1
Básico

Se introdujo StringBuffer en la versión inicial de Java

Es introducido en Java 5Introducido en
2
Sincronizado
Es sincronizadoDes sincronizado 
3Rendimiento 

Es seguro para la multithreading. Por lo tanto, varios hilos no pueden acceder simultáneamente, por lo que es lento.

No es seguro para la multithreading, por lo que es más rápido 
4Mutable

Es mutable. Podemos modificar la cadena sin crear un objeto

También es mutable 
5
Almacenamiento 
Pila
Pila

Ejemplo de StringBuilder

public class StringBuilderExample{
   public static void main(String[] args){
      StringBuilder builder = new StringBuilder("Hi");
      builder.append("Java 8");
      System.out.println("StringBuilderExample" +builder);
   }
}

Ejemplo de StringBuffer

public class StringBufferExample{
   public static void main(String[] args){
      StringBuffer buffer = new StringBuffer("Hi");
      buffer.append("Java 8");
      System.out.println("StringBufferExample" +buffer);
   }
}