Sobes.tech
Junior — Middle

Paaiškinkite StringPool naudojimo principą ir jo vaidmenį valdyti eilutes Java kalboje

sobes.tech AI

Atsakymas iš AI

Java StringPool yra specialus eilutės literatūrų baseinas, kuris saugo unikalius eilutės egzempliorius, siekiant taupyti atmintį ir pagerinti našumą.

Kai eilutė sukuriama naudojant literatūrą, JVM patikrina, ar tokia eilutė jau yra baseine. Jei taip, grąžina nuorodą į esamą; jei ne, prideda naują.

Tai leidžia:

  • išvengti to paties eilutės pakartotinio saugojimo atmintyje,
  • greičiau palyginti eilutes pagal nuorodą (==), jei jos iš baseino.

Pavyzdys:

String a = "hello";
String b = "hello";
System.out.println(a == b); // true, abi nuoroda į tą patį objektą StringPool

String c = new String("hello");
System.out.println(a == c); // false, c yra naujas objektas už baseino ribų