
Gráfica comparativa
Bases para la comparación | Cuerda | StringBuffer |
---|---|---|
BASIC | La longitud del objeto String es fija. | La longitud del StringBuffer se puede aumentar. |
Modificación | Objeto de cadena es inmutable. | El objeto StringBuffer es mutable. |
Actuación | Es más lento durante la concatenación. | Es más rápido durante la concatenación. |
Memoria | Consume más memoria. | Consume menos memoria. |
Almacenamiento | Cadena constante de la piscina. | Memoria del montón |
Definición de cuerda
"String" es una clase en Java. El objeto de la clase String es de longitud fija, y lo más importante para recordar, el objeto de la clase String es "inmutable". Una vez que inicializa el objeto String, no puede modificar ese objeto nuevamente. El objeto de la clase String se almacena en el conjunto de constantes String.
Primero entendamos eso, siempre que crees cualquier cadena; se crea un objeto de tipo cadena. Las constantes de cadena también son objetos de cadena.
System.out.println ("Hola, esta es la solución Teckpix");
En la declaración anterior, la cadena "Hola, esta es la solución Teckpix" es una constante de cadena.
Ahora entendamos la mutabilidad del objeto String con la ayuda de un ejemplo.
String str = new String ("Teckpix"); str.concat ("Solución"); system.out.println (str); // salida de Teckpix
En el código anterior, traté de concatenar las dos cadenas "Teckpix" y "Solución". Como sabemos cada vez que se crea una cadena, eso significa que se crea el objeto de tipo Cadena. Por lo tanto, la cadena "Teckpix" crea un objeto, cuya referencia se asigna al objeto de cadena "str". Luego, traté de concatenar una "Solución" de otra cadena con la cadena "Teckpix" usando el método "concat ()" de la clase String.

Definición de StringBuffer
La clase "StringBuffer" es la clase de la clase "String". La clase StringBuffer proporciona más funcionalidad a las cadenas. El objeto de la clase StringBuffer es mutable, es decir, su objeto se puede modificar. La longitud del objeto StringBuffer es ampliable. Puede insertar los caracteres o las subcadenas en el medio de la cadena literal que se asigna al objeto StringBuffer o al final de la misma. StringBuffer asigna espacio para 16 caracteres adicionales cuando no se solicita una longitud específica.
Entendamos la mutabilidad del objeto StringBuffer con la ayuda de un ejemplo:

StringBuffre Sb = new StringBuffer ("Teckpix"); Sb.append ("Solución"); system.out.println (Sb); // Solución Teckpix de salida
Como sabemos que el objeto StringBuffer es mutable. El método append () modifica el objeto StringBuffer Sb al que inicialmente, la referencia del objeto "Teckpix" se asigna anteriormente. El método append () agrega la nueva cadena literal "Solución", al final de la cadena literal "Teckpix". Ahora, cuando imprima el objeto Sb, imprimirá el objeto de cadena modificado "Soluciones Teckpix".
Diferencia clave entre String y StringBuffer
- La longitud del objeto String es fija, pero la longitud de un objeto de StringBuffer se puede aumentar cuando sea necesario.
- El objeto String es inmutable, es decir, su objeto no se puede reasignar de nuevo, mientras que el objeto StringBuffer es mutable.
- El objeto String tiene un rendimiento más lento, mientras que el objeto StringBuffer es más rápido.
- El objeto String consume más memoria, mientras que los objetos StringBuffer consumen menos memoria.
- Los objetos de cadena se almacenan en un grupo constante, mientras que los objetos de StringBuffer se almacenan en la memoria del montón.
Conclusión:
Los objetos StringBuffer proporcionan más funcionalidad a las cadenas en comparación con la clase String. Por lo tanto, es preferible trabajar con StringBuffer en lugar de la clase String.