Ir al contenido

Inmutabilidad

La inmutabilidad es una propiedad de algunos tipos de datos. Un tipo es inmutable cuando, una vez creado su valor, ese valor no cambia. Si se aplica una operación que parece modificarlo, el resultado es un nuevo valor y el original se mantiene igual.

Esto no depende de que el tipo sea de referencia: existen tipos de referencia mutables e inmutables.


String es un tipo de referencia inmutable. Esto significa que el texto almacenado en un String no se altera. En cambio, cualquier operación que transforme el texto entrega un nuevo String con el resultado.

Por esta razón, para conservar un cambio se debe asignar el resultado a una variable (ya sea una nueva o la misma).

Ejemplos de operaciones que retornan un nuevo String

Sección titulada «Ejemplos de operaciones que retornan un nuevo String»

En los siguientes ejemplos, el String original se mantiene igual y el resultado aparece en una nueva variable.

String texto = "Hola";
String mayus = texto.toUpperCase();
System.out.println(texto); // Hola
System.out.println(mayus); // HOLA
String texto = "Hola Mundo";
String modificado = texto.replace('o', 'O');
System.out.println(texto); // Hola Mundo
System.out.println(modificado); // HOlA MundO
String texto = " Java ";
String limpio = texto.trim();
System.out.println("[" + texto + "]"); // [ Java ]
System.out.println("[" + limpio + "]"); // [Java]