Sobes.tech
Junior — Middle

Môžete vysvetliť koncept poolu reťazcov a jeho úlohu v správe pamäte v Jave?

sobes.tech AI

Odpoveď od AI

Pool reťazcov (String Pool) v Jave je špeciálne miesto v pamäti, kde sa ukladajú unikátne inštancie literálov reťazcov. To umožňuje šetriť pamäť a zrýchliť porovnávanie reťazcov.

Keď vytvoríte reťazec pomocou literálu, napríklad:

String s = "ahoj";

Java tento reťazec umiestni do poolu reťazcov. Ak neskôr vznikne iný reťazec s rovnakou hodnotou, bude odkazovať na už existujúci objekt v poolu, namiesto toho, aby vytváral nový.

Toto je dôležité pre správu pamäti, pretože reťazce sú často používané objekty a ich opakované použitie znižuje záťaž na garbage collector a znižuje spotrebu pamäti.

Ak je reťazec vytvorený pomocou konštruktora new String("ahoj"), je vytvorený na halde (heap) a nebude automaticky znovu použitý.

Na pridanie reťazca do poolu môžete zavolať metódu intern():

String s1 = new String("ahoj");
String s2 = s1.intern(); // s2 bude odkazovať na reťazec v poole