Para quien lleve bastante tiempo con Java, sabrá lo que voy a contar a continuación, pero para los que se inician en el lenguaje esto les será muy útil. Dentro de la optimización de Strings voy a tratar dos temas distintos en sendas entradas, relacionadas con cómo la JVM maneja la memoria.
Hoy, en primer lugar, os voy a plantear una pregunta (no, no hay premio para el que acierte, además os voy a decir la solución :P).
La pregunta es la siguiente:
Si tenemos el siguiente fragmento de código:
String a = "Hola Mundo";
String b = a;
¿Cuántas regiones de memoria utilizará la JVM para almacenar ambas cadenas?
La solución es UNA. Se crearán dos punteros apuntando a la misma dirección de memoria. Y alguno pensará: “¿Y si cambio b también se cambia a?”. Pues no, la JVM en el momento en que b cambia, creará otra región de memoria en la que almacenará el valor de b. Esta operación supone una optimización del manejo de las cadenas llevada a cabo por la JVM.
Comentarios (1)