AOWS

Just another adrian’s weblog

Trabajando con String en Java (I): inmutabilidad

with 3 comments

La inmutabilidad de los strings es un concepto muy importante en Java. Al contrario de lo que sucede con la mayoría de objetos, un string no puede ser modificado después de ser creado.

String s = "string";
s = s + " modified";
System.out.println(s);

Este código nos escupe lo siguiente: string modified. Y sin embargo acabamos de decir que los strings son inmutables… ¿se pueden modificar o no entonces?

No. En realidad lo que está pasando es que en la segunda línea se crea un nuevo objeto, un nuevo string fruto de la concatenación de otros dos. s apunta ahora a un objeto de tipo string cuyo valor es string modified, pero en algún lado de la memoria de nuestra máquina siguen vivas las otras dos cadenas presentes en el código: string y modified (en dónde están exactamente hablaremos en otro post).

Por esta razón la sentencia:

String s = "string";
s.concat(" modified");

no modifica el string original y s sigue conteniendo string a secas. Para modificar s debemos realizar una asignación nueva:

s = s.concat(" modified");

Más sobre los String

Written by adrian

8 mayo, 2009 a 16:38

Publicado en Uncategorized

3 comentarios

Subscribe to comments with RSS.

  1. […] creando un objeto nuevo (los strings son inmutables y no se pueden modificar). Una clase que nos puede ayudar bastante a la hora de mejorar el rendimiento en este tipo de […]

  2. Gracias por este grandioso sitio….

    Es de mucha ayuda….🙂

    Sigue asi, Suerte y Exitos

    Banana

    26 mayo, 2013 at 09:21

  3. […] cadenas constantes (realmente conocidos como Strings Inmutables) tienen una dirección de memoria única y siempre es la misma mientras el programa está en […]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: