Directorio de artículos
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.
AbstractStringBuilder
La matriz de valores de su clase principal no es de tipo finalchar[] value;
Todos los métodos de esta clase se agregan
synchronized
para 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.