Junior — Middle
Čo je pool reťazcových literálov a na čo je potrebný v správe pamäte?
sobes.tech AI
Odpoveď od AI
Pool reťazcov (String Pool) je špeciálna oblasť pamäte v Jave, kde sú uložené unikátne objekty reťazcov. Keď sa vytvorí literál reťazca, JVM skontroluje, či už taký reťazec existuje v poole. Ak áno, vráti odkaz naň; ak nie, pridá nový.
Na čo je to dobré?
- Úspora pamäte: rovnaké reťazce sú uložené len raz.
- Zvýšenie výkonu: porovnanie reťazcov pomocou odkazu (==) je možné pre literály z poolu.
Príklad:
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, obe referencie ukazujú na ten istý objekt v poole
String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 je nový objekt mimo pool
Týmto spôsobom pool reťazcov pomáha efektívne spravovať pamäť pri práci s reťazcami.