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ų