Curiosidades Java: Optimización de Strings (I)

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.

Sin votos aún

Muy bueno,yo la pregunta la acerte.

Hace tiempo estube leyendo algo de C,lo cual no me gusto porque no me manejo muy bien con la memoria.

Por algo estoy estudiando JAVA, ¿No? jaja

Le veo con mucho futuro a Java.

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <pre>. The supported tag styles are: <foo>, [foo].

Más información sobre opciones de formato

By submitting this form, you accept the Mollom privacy policy.