String, StringBuffer y String Builder son clases en Java. La cadena es ampliamente utilizada en la programación de Java. Una vez que se crea un objeto de String, no es posible cambiarlos. Cada vez que se produce un cambio en la cadena, se crea una nueva cadena. Incluso si es una concatenación a una cadena existente, crea una nueva cadena. Esto causa pérdida de memoria. Las clases StringBuffer y StringBuilder en Java se utilizan para modificar String. los diferencia clave entre String, StringBuffer y StringBuilder en Java es que String es una clase para crear un objeto de tipo String que es una secuencia de caracteres, StringBuffer es una clase que se usa para modificar Strings que proporciona seguridad para subprocesos, y StringBuilder es una clase que se usa para modificar Strings que no proporcionan seguridad para subprocesos.
1. Resumen y diferencia clave
2. Qué es String en Java
3. Qué es StringBuffer en Java
4. Qué es StringBuilder en Java
5. Similitudes entre String StringBuffer y StringBuilder en Java
6. Comparación lado a lado: String vs StringBuffer vs StringBuilder en Java en forma tabular
7. Resumen
La clase de cadena está en el paquete java.lang. Cada vez que el programador crea un String, es un objeto de tipo String. Las cadenas tienen un significado inmutable una vez que se crea el objeto, no se puede cambiar. Los objetos creados con clases de envoltorio como Integer, Byte, Float, Double también son inmutables. Un literal de cadena se incluye entre comillas dobles. p.ej. "Hola Mundo". Cada vez que se crea un literal de cadena, la máquina virtual de Java (JVM) comprueba el conjunto de constantes de cadena. Si el String existe, se devuelve una referencia al conjunto de constantes de String. Si es una nueva Cadena, ese objeto se crea en el conjunto de constantes de Cadena.
Figura 01: programa Java que usa String, StringBuffer y StringBuilder
Consulte la siguiente pieza de código.
Cadena s1 = "Hola";
s1 = s1 + "Mundo";
System.out.println (s1);
En la primera declaración, s1 se refiere al "Hola" en el conjunto de constantes de String. En la segunda declaración, JVM no cambia la cadena existente. En su lugar, crea una nueva Cadena como "Hello World" y s1 ahora se refiere a esa nueva Cadena. El objeto "Hello" saliente todavía existe en el conjunto de constantes de cadena.
Si hay un código que es,
Cadena s1 = "Hola";
Cadena s2 = s1;
s1, s2 se referirán al objeto String "Hola".
La clase StringBuffer se usa para hacer que los objetos String sean mutables. Por lo tanto, esos objetos pueden ser modificados. StringBuffer define cuatro constructores. StringBuffer (), StringBuffer (tamaño int), StringBuffer (String str), StringBuffer (charSequence [] ch)
Consulte el código a continuación,
StringBuffer s1 = new StringBuffer ("Hola");
s1.append ("Mundo");
System.out.println (s1);
En la declaración 1, s1 se refiere al objeto "Hola" en un montón. El objeto es mutable porque se crea utilizando StringBuffer. En la declaración 2, "Mundo" se anexa al mismo objeto de cadena "Hola".
Los objetos de cadena creados con la clase StringBuffer pueden ahorrar memoria. StringBuffer proporciona seguridad de subprocesos porque dos subprocesos no pueden acceder al mismo método en la clase StringBuffer simultáneamente. Seguridad del hilo disminuye el rendimiento del StringBuffer. La clase StringBuffer contiene métodos como append (), insert (), reverse (), replace ().
La clase StringBuilder se usa para hacer que los objetos String sean mutables. Por lo tanto, esos objetos pueden ser modificados. La funcionalidad es similar a StringBuffer, pero esto no proporciona seguridad para subprocesos. StringBuilder tiene constructores como StringBuilder (), StringBuilder (tamaño int), StringBuilder (String str).
Consulte el siguiente código.
StringBuilder s1 = new StringBuilder ("Hola");
s1.append ("Mundo");
System.out.println (s1);
En la declaración 1, s1 se refiere al objeto "Hola" en un montón. El objeto es mutable porque se crea utilizando StringBuilder. En la declaración 2, "Mundo" se anexa al mismo objeto de cadena "Hola". No hay creación de un objeto String completamente nuevo..
Los objetos de cadena creados con la clase StringBuilder pueden ahorrar memoria. A diferencia de StringBuffer, StringBuilder no proporciona seguridad de subprocesos porque dos subprocesos pueden acceder al mismo método en la clase StringBuilder simultáneamente. La clase StringBuilder contiene métodos como append (), insert (), reverse (), replace ().
String vs StringBuffer vs StringBuilder | |
Cuerda | La cadena es una clase de Java que se utiliza para crear un objeto de tipo Cadena, que es una secuencia de caracteres.. |
StringBuffer | StringBuffer es una clase Java que se utiliza para crear objetos String, que se pueden modificar con seguridad de subprocesos. |
StringBuilder | StringBuilder es una clase que se utiliza para crear objetos de cadena, que se pueden modificar sin seguridad de subprocesos. |
Mutabilidad | |
Cuerda | La cadena es una clase inmutable.. |
StringBuffer | StringBuffer es una clase mutable. |
StringBuilder | StringBuilder es una clase mutable. |
Seguridad del hilo | |
Cuerda | Métodos de cadena son hilo seguro. |
StringBuffer | Los métodos de StringBuffer son seguros para subprocesos y están sincronizados. |
StringBuilder | Los métodos de StringBuilder no son seguros y no están sincronizados. |
Actuación | |
Cuerda | La cuerda es rapida. |
StringBuffer | StringBuffer es lento. |
StringBuilder | StringBuilder es rápido. |
String, StringBuffer y StringBuilder parecen ser los mismos, pero tienen diferentes significados. Todas estas son clases de Java. La diferencia entre String, StringBuffer y StringBuilder en Java es que, String es una clase para crear un objeto de tipo String, que es un conjunto de caracteres, StringBuffer es una clase que se utiliza para modificar Strings y proporcionar seguridad para subprocesos, mientras que StringBuilder es un Clase que se utiliza para modificar cadenas que no proporciona seguridad de subprocesos.
Puede descargar la versión en PDF de este artículo y usarla para fines fuera de línea, como se indica en la nota de cita. Por favor descargue la versión PDF aquí Diferencia entre StringBuffer y StringBuilder en Java
1. “String vs StringBuffer vs StringBuilder”. JournalDev, 30 de julio de 2017. Disponible aquí
2. "Java Hungry". Diferencia entre String, StringBuilder y StringBuffer Classes con Ejemplo: Java | Java Hungry. Disponible aquí
3.tutorialspoint.com. "Java Strings". El punto. Disponible aquí