Cadena, StringBuffer, StringBuilder diferencia

Cadena, StringBuffer, StringBuilder diferencia

String, StringBuffer, StringBuilder son tres clases en Java para procesar cadenas

Cadena

Es una clase inmutable, es decir, no se puede modificar después de su creación. Cada vez que se realiza una operación en una variable de tipo String, se crea un nuevo objeto String, lo que conduce a un uso de memoria ineficiente. Por lo tanto, el uso de la clase String puede causar problemas de rendimiento si se requieren operaciones de modificación frecuentes en la cadena.

La clase String guarda internamente esta matriz de valores modificada final

private final char value[];

StringBuffer

Es una clase mutable segura para subprocesos adecuada para compartir entre varios subprocesos. Siempre que se opere una variable de tipo StringBuffer, no se creará un nuevo objeto String, sino que se modificará sobre la base del objeto original.

AbstractStringBuilderLa matriz de valores de su clase principal no es de tipo final

char[] value;

Todos los métodos de esta clase se agregan synchronizedpara garantizar la seguridad de los subprocesos.

Constructor de cadenas

Es una clase variable, similar a StringBuffer, pero StringBuilder no garantiza la seguridad de subprocesos. Por lo tanto, cuando no es necesario considerar el acceso de subprocesos múltiples, se recomienda usar StringBuilder en lugar de StringBuffer, porque el rendimiento de StringBuilder es mayor que el de StringBuffer.

Resumir

Si necesita modificar la cadena con frecuencia y solo un subproceso accede al objeto, debe usar StringBuilder; si necesita modificar la cadena con frecuencia y varios subprocesos pueden acceder al objeto, debe usar StringBuffer. Y si no necesita modificar la cadena, debe usar String.

Supongo que te gusta

Origin blog.csdn.net/m0_52440465/article/details/130417363
Recomendado
Clasificación