Junior — Middle
Vysvetlite mechanizmus fungovania poolu reťazcov v jazyku Java
sobes.tech AI
Odpoveď od AI
V Jave je String Pool (zásobník reťazcov) špeciálne miesto v pamäti, kde sa ukladajú literály reťazcov a unikátne inštancie reťazcov.
Keď sa reťazec vytvorí pomocou literálu, napríklad:
String s = "ahoj";
Java skontroluje, či takýto reťazec už existuje v zásobníku. Ak áno, vráti odkaz naň; ak nie, pridá ho.
Toto pomáha šetriť pamäť a zrýchľuje porovnávanie reťazcov (operátor == porovnáva odkazy).
Ak sa reťazec vytvorí cez konštruktor:
String s = new String("ahoj");
je vytvorený nový objekt na halde, ktorý nie je spojený so zásobníkom, pokiaľ explicitne nevoláme intern():
String s2 = new String("ahoj").intern();
Potom s2 bude odkazovať na reťazec v zásobníku.
Týmto spôsobom String Pool pomáha vyhnúť sa duplikácii rovnakých reťazcov v pamäti a optimalizuje ich správu.