lunes, 6 de febrero de 2012

Las clases String, StringBuffer y StringBuilder – 1. Introducción

En Java no existe un tipo de datos primitivo que sirva para la manipulación de cadenas de caracteres.  En su lugar se usa una clase definida en la API llamada String. Por lo tanto, las cadenas en Java se tratan como objetos. Debido a que este objeto se usa frecuentemete, existe soporte directo, con lo que simplificar alguna operaciones. Así, si se quiere crear una variable de tipo String, como objeto que es, se debe instanciar:

String s = new String("hola");
Aunque se puede hacer de forma directa:
String s = "hola";
 
Por otro lado, cuando a un String se le modifica el valor, la memoria que ocupaba éste no se reemplaza, sino que se borra y se crea una nueva zona de memoria (es una zona de memoria inmutable). Esto hace que si se modifica muchas veces la variable String se hace un mal uso de la gestión de la memoria.



Por eso, existen 2 clases más tipo String, definidas en la api, que permiten el uso de cadenas de forma variable, no constante, StringBuffer y StringBuilder.
StringBuffer sí es mutable, asi que cuando se cambia la cadena se mantiene la misma zona de memoria. Y StringBuilder, que tambien es mutable, pero no es thread-safe, es decir, que no esta prerparada para proceso multihilo, por lo que es más óptima.
En estas dos clases, para darle valor a la variable, sí es necesario instanciarlo:

StringBuffer s = new StringBuffer("Hola");

No hay comentarios:

Publicar un comentario