In quale punto della memoria dello storage Java si trovano gli oggetti stringa?
sobes.tech AI
Risposta dell'AI
In Java, gli oggetti string (String) vengono memorizzati in un'area speciale di memoria chiamata String Pool (piscina di stringhe), che si trova nel Metaspace o nel PermGen (nelle vecchie versioni di JVM).
Quando viene creato un letterale di stringa, la JVM verifica la stringa nel pool: se esiste già, viene restituita una referenza all'oggetto esistente; altrimenti, viene creato un nuovo oggetto e inserito nel pool. Questo aiuta a risparmiare memoria e a velocizzare il confronto delle stringhe.
Se una stringa viene creata tramite il costruttore new String(), l'oggetto viene creato nel heap e non nel pool, e non verrà automaticamente inserito nel String Pool finché non si chiama esplicitamente il metodo intern().
Esempio:
String s1 = "hello"; // stringa nel pool
String s2 = new String("hello"); // oggetto nel heap
String s3 = s2.intern(); // s3 fa riferimento alla stringa nel pool