Sobes.tech
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.