Junior — Middle
Hogyan jönnek létre és kezelik az objektumokat a Java sztring poolban?
sobes.tech MI
Válasz az MI-től
Java-ban a String Pool egy speciális hely a memóriában, ahol az egyedi string literálokat tárolják, hogy megtakarítsák a memóriát és növeljék a teljesítményt.
Amikor egy string literált hozunk létre, a JVM ellenőrzi, hogy már létezik-e a poolban:
- Ha igen, egy hivatkozást ad vissza a meglévő objektumra.
- Ha nem, a stringet hozzáadja a poolhoz, és a hivatkozást adja vissza.
A new String() konstruktorral létrehozott string objektumok nem kerülnek automatikusan a poolba, de manuálisan hozzáadhatók az intern() metódussal.
Példa:
String s1 = "hello"; // a string a poolba kerül
String s2 = "hello"; // s2 ugyanarra az objektumra hivatkozik a poolban
String s3 = new String("hello"); // új objektum a poolon kívül
String s4 = s3.intern(); // s4 a poolban lévő objektumra hivatkozik
Így a String Pool segít elkerülni ugyanazon stringek többszöri tárolását a memóriában.