Junior — Middle
Mi az a sztring literál pool, és miért szükséges a memória kezelésében?
sobes.tech MI
Válasz az MI-től
A String Pool egy speciális memória terület Java-ban, ahol az egyedi string objektumokat tárolják. Amikor egy string literált hozunk létre, a JVM ellenőrzi, hogy már létezik-e a poolban. Ha igen, akkor egy hivatkozást ad vissza rá; ha nem, akkor újat ad hozzá.
Ennek az oka:
- Memória megtakarítás: azonos stringek csak egyszer kerülnek tárolásra.
- Teljesítmény növelése: a stringek összehasonlítása referencia szerint (==) lehetséges a pool literálok esetén.
Példa:
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, mindkét referencia ugyanarra az objektumra mutat a poolban
String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 egy új objektum a poolon kívül
Így a string pool hatékonyan segít a memória kezelésében a stringekkel való munkában.