Diferencia entre String StringBuffer y StringBuilder en Java

Tabla de contenido:

Diferencia entre String StringBuffer y StringBuilder en Java
Diferencia entre String StringBuffer y StringBuilder en Java

Video: Diferencia entre String StringBuffer y StringBuilder en Java

Video: Diferencia entre String StringBuffer y StringBuilder en Java
Video: JAVA: DIFERENCIAS ENTRE STRING, STRINGBUFFER Y STRINGBUILDER 2024, Mes de julio
Anonim

Diferencia clave: String vs StringBuffer vs StringBuilder en Java

String, StringBuffer y String Builder son clases en Java. String es ampliamente utilizado 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 el String, se crea un nuevo String. Incluso si se trata de una concatenación a una cadena existente, crea una nueva cadena. Esto provoca el desperdicio de memoria. Las clases StringBuffer y StringBuilder en Java se utilizan para modificar String. La 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 utiliza para modificar cadenas que proporciona seguridad para subprocesos y StringBuilder es una clase que se utiliza para modificar cadenas que no proporcionan seguridad para subprocesos.

¿Qué es una cadena en Java?

La clase String está en el paquete java.lang. Cada vez que el programador crea un String, es un objeto de tipo String. Las cadenas son inmutables, lo que significa que una vez que se crea el objeto, no se puede cambiar. Los objetos creados con clases contenedoras como Integer, Byte, Float, Double también son inmutables. Un literal de cadena está encerrado entre comillas dobles. p.ej. "Hola Mundo". Cada vez que se crea un literal de cadena, la máquina virtual de Java (JVM) verifica el conjunto de constantes de cadena. Si la cadena existe, se devuelve una referencia al conjunto de constantes de la cadena. Si es una nueva cadena, ese objeto se crea en el conjunto de constantes de cadena.

Diferencia entre String StringBuffer y StringBuilder en Java
Diferencia entre String StringBuffer y StringBuilder en Java
Diferencia entre String StringBuffer y StringBuilder en Java
Diferencia entre String StringBuffer y StringBuilder en Java

Figura 01: programa Java usando String, StringBuffer y StringBuilder

Consulte el siguiente fragmento de código.

Cadena s1=“Hola”;

s1=s1 + “Mundo”;

Sistema.fuera.println(s1);

En la primera declaración, s1 se refiere a "Hola" en el conjunto de constantes de cadenas. En la segunda declaración, JVM no cambia la cadena existente. En su lugar, crea una nueva cadena como "Hola mundo" y s1 ahora se refiere a esa nueva cadena. El objeto "Hola" existente todavía existe en el conjunto de constantes de cadenas.

Si hay un código que es, Cadena s1=”Hola”;

Cadena s2=s1;

s1, s2 ambos se referirán al objeto String "Hola".

¿Qué es StringBuffer en Java?

La clase StringBuffer se usa para hacer mutables los objetos String. Por lo tanto, esos objetos se pueden modificar. 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”);

Sistema.fuera.println(s1);

En la declaración 1, s1 se refiere al objeto "Hola" en un montón. El objeto es mutable porque se crea usando StringBuffer. En la declaración 2, "World" se agrega al mismo objeto String "Hello".

Los objetos String creados con la clase StringBuffer pueden ahorrar memoria. StringBuffer proporciona seguridad para subprocesos porque dos subprocesos no pueden acceder al mismo método en la clase StringBuffer simultáneamente. La seguridad de subprocesos disminuye el rendimiento de StringBuffer. La clase StringBuffer contiene métodos como append(), insert(), reverse(), replace().

¿Qué es StringBuilder en Java?

La clase StringBuilder se usa para hacer mutables los objetos String. Por lo tanto, esos objetos se pueden modificar. La funcionalidad es similar a StringBuffer, pero esto no proporciona seguridad para subprocesos. StringBuilder tiene constructores como StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Consulte el siguiente código.

StringBuilder s1=nuevo StringBuilder(“Hola”);

s1.append(“Mundo”);

Sistema.fuera.println(s1);

En la declaración 1, s1 se refiere al objeto "Hola" en un montón. El objeto es mutable porque se crea con StringBuilder. En la declaración 2, "World" se agrega al mismo objeto String "Hello". No hay creación de un objeto String completamente nuevo.

Los objetos String 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().

¿Cuál es la similitud entre String, StringBuffer y StringBuilder en Java?

Todo se puede usar para crear cadenas

¿Cuál es la diferencia entre String StringBuffer y StringBuilder en Java?

Cadena frente a StringBuffer frente a StringBuilder

Cadena La cadena es una clase de Java que se utiliza para crear un objeto de tipo Cadena, que es una secuencia de caracteres.
Búfer de cadena StringBuffer es una clase de Java que se utiliza para crear objetos String, que se pueden modificar con seguridad para subprocesos.
Creador de cadenas StringBuilder es una clase que se utiliza para crear objetos de cadena, que se pueden modificar sin seguridad de subprocesos.
Mutabilidad
Cadena La cadena es una clase inmutable.
Búfer de cadena StringBuffer es una clase mutable.
Creador de cadenas StringBuilder es una clase mutable.
Seguridad de subprocesos
Cadena Los métodos de String son seguros para subprocesos.
Búfer de cadena Los métodos de StringBuffer son seguros para subprocesos y están sincronizados.
Creador de cadenas Los métodos de StringBuilder no son seguros para subprocesos ni están sincronizados.
Rendimiento
Cadena La cuerda es rápida.
Búfer de cadena StringBuffer es lento.
Creador de cadenas StringBuilder es rápido.

Resumen: String vs StringBuffer vs StringBuilder en Java

String, StringBuffer y StringBuilder parecen ser lo mismo, pero tienen significados diferentes. 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 usa para modificar Strings y proporcionar seguridad de subprocesos, mientras que StringBuilder es un clase que se utiliza para modificar cadenas que no proporcionan seguridad para subprocesos.

Descargue el PDF String vs StringBuffer vs StringBuilder en Java

Puede descargar la versión en PDF de este artículo y utilizarlo sin conexión según la nota de la cita. Descargue la versión en PDF aquí Diferencia entre String StringBuffer y StringBuilder en Java

Recomendado: