Sobes.tech
Junior — Middle

Magyarázza el a StringPool használatának elvét és szerepét a Java-ban a sztringek kezelésében

sobes.tech MI

Válasz az MI-től

A Java StringPool egy speciális sztring literálokból álló medence, amely egyedi példányokat tárol a memóriamegtakarítás és a teljesítmény növelése érdekében.

Amikor egy literál segítségével hozunk létre egy sztringet, a JVM ellenőrzi, hogy ez a sztring már létezik-e a medencében. Ha igen, akkor egy hivatkozást ad vissza a meglévőre; ha nem, akkor újat ad hozzá.

Ez lehetővé teszi:

  • Azonos sztringek ismételt tárolásának elkerülését a memóriában.
  • Gyorsabb összehasonlítást a sztringek között referencia szerint (==), ha azok a medencéből származnak.

Példa:

String a = "hello";
String b = "hello";
System.out.println(a == b); // true, mindkettő ugyanarra a StringPool-ban lévő objektumra mutat

String c = new String("hello");
System.out.println(a == c); // false, c egy új objektum a medencén kívül