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