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