Junior — Middle
Spiega il principio di utilizzo di StringPool e il suo ruolo nella gestione delle stringhe in Java
sobes.tech AI
Risposta dell'AI
StringPool in Java è un pool speciale di letterali di stringa che memorizza istanze uniche di stringhe per risparmiare memoria e migliorare le prestazioni.
Quando si crea una stringa tramite un letterale, la JVM verifica se questa stringa esiste già nel pool. Se sì, restituisce un riferimento a quella esistente; altrimenti, ne aggiunge una nuova.
Questo permette:
- Di evitare duplicazioni di stringhe uguali in memoria.
- Di confrontare le stringhe più rapidamente tramite riferimento (==), se provengono dal pool.
Esempio:
String a = "hello";
String b = "hello";
System.out.println(a == b); // true, entrambe puntano allo stesso oggetto nel StringPool
String c = new String("hello");
System.out.println(a == c); // false, c è un nuovo oggetto fuori dal pool