Sobes.tech
Junior — Middle

Explica principiul utilizării StringPool și rolul său în gestionarea șirurilor de caractere în Java

sobes.tech AI

Răspuns de la AI

StringPool în Java este un pool special de literali de șiruri care stochează instanțe unice de șiruri pentru economisirea memoriei și creșterea performanței.

Când se creează un șir printr-un literal, JVM verifică dacă acel șir există deja în pool. Dacă da, returnează o referință la cel existent; dacă nu, adaugă unul nou.

Acest lucru permite:

  • Evitarea duplicării aceluiași șir în memorie.
  • Compararea mai rapidă a șirurilor după referință (==), dacă provin din pool.

Exemplu:

String a = "hello";
String b = "hello";
System.out.println(a == b); // true, ambele indică același obiect în StringPool

String c = new String("hello");
System.out.println(a == c); // false, c este un obiect nou în afara pool-ului