Sobes.tech
Junior — Middle

În ce loc din memoria stocării Java se află obiectele de tip șir?

sobes.tech AI

Răspuns de la AI

În Java, obiectele de tip string (String) sunt stocate într-o zonă specială de memorie numită String Pool (piscina de șiruri), care se află în Metaspace sau în PermGen (în versiunile mai vechi ale JVM).

Când se creează un literal de șir, JVM verifică piscina de șiruri: dacă un astfel de șir există deja, se returnează o referință la obiectul existent; altfel, se creează un nou obiect și se plasează în piscină. Acest lucru ajută la economisirea memoriei și la accelerarea comparării șirurilor.

Dacă un șir este creat prin constructorul new String(), obiectul este creat în heap și nu va fi automat plasat în String Pool, până când nu se apelează explicit metoda intern().

Exemplu:

String s1 = "hello"; // șir în piscină
String s2 = new String("hello"); // obiect în heap
String s3 = s2.intern(); // s3 face referire la șirul din piscină