Junior — Middle
Ako sa objekty vytvárajú a spravujú v pooli reťazcov v Jave?
sobes.tech AI
Odpoveď od AI
V Jave je String Pool špeciálne miesto v pamäti, kde sa ukladajú unikátne literály reťazcov na úsporu pamäti a zvýšenie výkonu.
Keď sa vytvorí literál reťazca, JVM skontroluje, či už existuje v poole:
- Ak áno, vráti odkaz na existujúci objekt.
- Ak nie, reťazec sa pridá do poolu a vráti sa jeho odkaz.
Objekty reťazcov vytvorené pomocou konštruktora new String() nie sú automaticky vkladané do poolu, ale môžu byť manuálne pridané pomocou metódy intern().
Príklad:
String s1 = "hello"; // reťazec sa vloží do poolu
String s2 = "hello"; // s2 odkazuje na ten istý objekt v poole
String s3 = new String("hello"); // nový objekt mimo pool
String s4 = s3.intern(); // s4 odkazuje na objekt v poole
Týmto spôsobom pomáha String Pool vyhnúť sa duplikácii rovnakých reťazcov v pamäti.