Junior — Middle
Vysvetlite princíp používania StringPool a jeho úlohu v správe reťazcov v Jave
sobes.tech AI
Odpoveď od AI
StringPool v Jave je špeciálny bazén literálov reťazcov, ktorý uchováva unikátne inštancie reťazcov na úsporu pamäte a zvýšenie výkonu.
Keď sa reťazec vytvorí pomocou literálu, JVM skontroluje, či taký reťazec už existuje v bazéne. Ak áno, vráti odkaz na existujúci; ak nie, pridá nový.
Toto umožňuje:
- Vyhnúť sa duplikácii rovnakých reťazcov v pamäti.
- Rýchlejšie porovnávanie reťazcov podľa odkazu (==), ak pochádzajú z bazéna.
Príklad:
String a = "hello";
String b = "hello";
System.out.println(a == b); // true, obe odkazujú na ten istý objekt v StringPool
String c = new String("hello");
System.out.println(a == c); // false, c je nový objekt mimo bazéna