Sobes.tech
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.