Junior — Middle
¿En qué lugar de la memoria del almacenamiento Java se encuentran los objetos de cadena?
sobes.tech AI
Respuesta de la IA
En Java, los objetos de cadena (String) se almacenan en una área especial de memoria llamada String Pool (piscina de cadenas), que se encuentra en el Metaspace o en PermGen (en versiones antiguas de JVM).
Cuando se crea un literal de cadena, la JVM verifica la piscina de cadenas: si esa cadena ya existe, se devuelve una referencia al objeto existente; de lo contrario, se crea un nuevo objeto y se coloca en la piscina. Esto ayuda a ahorrar memoria y a acelerar la comparación de cadenas.
Si una cadena se crea mediante el constructor new String(), el objeto se crea en el montón (heap), no en la piscina, y no se colocará automáticamente en el String Pool hasta que se llame explícitamente al método intern().
Ejemplo:
String s1 = "hello"; // cadena en la piscina
String s2 = new String("hello"); // objeto en el montón
String s3 = s2.intern(); // s3 hace referencia a la cadena en la piscina