Sobes.tech
Junior — Middle

Vysvetlite princíp používania StringPool a jeho úlohu v správe reťazcov v Jave

sobes.tech AI

Odpoveď od AI

StringPool v Jave je špeciálny bazén literálov reťazcov, ktorý uchováva unikátne inštancie reťazcov na úsporu pamäte a zvýšenie výkonu.

Keď sa reťazec vytvorí pomocou literálu, JVM skontroluje, či taký reťazec už existuje v bazéne. Ak áno, vráti odkaz na existujúci; ak nie, pridá nový.

Toto umožňuje:

  • Vyhnúť sa duplikácii rovnakých reťazcov v pamäti.
  • Rýchlejšie porovnávanie reťazcov podľa odkazu (==), ak pochádzajú z bazéna.

Príklad:

String a = "hello";
String b = "hello";
System.out.println(a == b); // true, obe odkazujú na ten istý objekt v StringPool

String c = new String("hello");
System.out.println(a == c); // false, c je nový objekt mimo bazéna