Diferencia entre String, StringBuffer y StringBuilder en Java – Ejemplo adjunto

Publicado: 2022-01-30
Diferencia entre String, StringBuffer y StringBuilder en Java - Comparación y ejemplo adjunto

En este tutorial de Java, repasaremos la diferencia entre Java String, StringBuffer y StringBuilder.

Empecemos:

Cuerda:

La clase String representa cadenas de caracteres. Todos los literales de cadena en los programas de Java, como "crunchify", se implementan como instancias de esta clase. Las cadenas son constantes; sus valores no se pueden cambiar después de crearlos.

Buffer de cadena:

Una secuencia de caracteres mutable y segura para subprocesos. Un búfer de cadena es como una cadena, pero se puede modificar.

En cualquier momento, contiene una secuencia particular de caracteres, pero la longitud y el contenido de la secuencia se pueden cambiar a través de ciertas llamadas a métodos.

Los búferes de cadena son seguros para que los usen varios subprocesos.

Constructor de cadenas:

Una secuencia mutable de caracteres. Esta clase proporciona una API compatible con StringBuffer, pero sin garantía de sincronización.

Esta clase está diseñada para usarse como un reemplazo directo para StringBuffer en lugares donde el búfer de cadena estaba siendo utilizado por un solo subproceso (como suele ser el caso).

Siempre que sea posible, se recomienda utilizar esta clase con preferencia a StringBuffer, ya que será más rápida en la mayoría de las implementaciones.

Comparemos todas las características a continuación de String, StringBuffer y StringBuilder.

Cuerda StringBuffer Constructor de cadenas
¿A salvo de amenazas? No
¿Sincronizado? No
¿Modificable? No (inmutable) Sí (mutable) Sí (mutable)
Almacenamiento Grupo de cuerdas Montón Montón
Rendimiento Lento Rápido Más rápido

Código Java:

  • Crear clase: CrunchifyStringVsStringBufferVsStringBuilder.java
  • Ponga el siguiente código en él
  • Guardar el archivo

En este tutorial, estamos agregando sumando, agregando un total de cadenas 199999 veces.

Resultado de la consola IntelliJ IDEA:

Ejecute el programa anterior como una aplicación Java en IntelliJ IDEA o en Eclipse Console y obtendrá el siguiente resultado.

Avíseme si tiene algún problema al ejecutar el programa anterior o si tiene alguna pregunta entre String, StringBuffer y StringBuilder.