Puteți explica conceptul de pool de șiruri și rolul său în gestionarea memoriei în Java?
sobes.tech AI
Răspuns de la AI
Pool-ul de șiruri (String Pool) în Java este un loc special în memorie unde sunt stocate instanțe unice ale literaleor de șiruri. Acest lucru permite economisirea memoriei și accelerarea comparației șirurilor.
Când creați un șir folosind un literal, de exemplu:
String s = "salut";
Java plasează acest șir în pool-ul de șiruri. Dacă ulterior se creează alt șir cu aceeași valoare, acesta va face referire la obiectul deja existent în pool, în loc să creeze unul nou.
Este important pentru gestionarea memoriei, deoarece șirurile sunt obiecte frecvent utilizate, iar reutilizarea instanțelor lor reduce sarcina pe colectorul de gunoi și scade consumul de memorie.
Dacă un șir este creat prin constructorul new String("salut"), acesta este creat în heap și nu în pool, și nu va fi reutilizat automat.
Pentru a adăuga un șir în pool, puteți apela metoda intern():
String s1 = new String("salut");
String s2 = s1.intern(); // s2 va face referire la șirul din pool