English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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úmero | Clave | Buffer de cadenas | Generador de cadenas |
---|---|---|---|
1 | Básico | Se introdujo StringBuffer en la versión inicial de Java | Es introducido en Java 5Introducido en |
2 | Sincronizado | Es sincronizado | Des sincronizado |
3 | Rendimiento | 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 |
4 | Mutable | Es mutable. Podemos modificar la cadena sin crear un objeto | También es mutable |
5 | Almacenamiento | Pila | Pila |
public class StringBuilderExample{ public static void main(String[] args){ StringBuilder builder = new StringBuilder("Hi"); builder.append("Java 8"); System.out.println("StringBuilderExample" +builder); } }
public class StringBufferExample{ public static void main(String[] args){ StringBuffer buffer = new StringBuffer("Hi"); buffer.append("Java 8"); System.out.println("StringBufferExample" +buffer); } }