Sobes.tech
Junior — Middle

Explicați mecanismul de funcționare a pool-ului de șiruri în limbajul de programare Java

sobes.tech AI

Răspuns de la AI

În Java, Pool-ul de șiruri (String Pool) este un loc special în memorie unde sunt stocate literalele de șiruri și instanțele unice de șiruri.

Când se creează un șir folosind un literal, de exemplu:

String s = "salut";

Java verifică dacă acest șir există deja în pool. Dacă da, returnează o referință către el; dacă nu, îl adaugă.

Acest lucru ajută la economisirea memoriei și la accelerarea comparației șirurilor (operatorul == compară referințele).

Dacă șirul este creat prin constructor:

String s = new String("salut");

se creează un nou obiect în heap care nu este legat de pool, cu excepția cazului în care se apelează explicit intern():

String s2 = new String("salut").intern();

Atunci, s2 va face referire la șirul din pool.

Astfel, pool-ul de șiruri ajută la evitarea duplicării aceluiași șir în memorie și optimizează gestionarea acestora.