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