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