Junior — Middle
Izskaidrojiet StringPool izmantošanas principu un tā lomu virkņu pārvaldībā Java valodā
sobes.tech AI
Atbilde no AI
Java StringPool ir īpaša virkņu literāļu baseins, kas glabā unikālas virkņu instances, lai taupītu atmiņu un uzlabotu veiktspēju.
Kad tiek izveidota virkne ar literāļa palīdzību, JVM pārbauda, vai šāda virkne jau pastāv baseinā. Ja tā, tas atgriež atsauci uz esošo; ja nē, tas pievieno jaunu.
Tas ļauj:
- izvairīties no vienādu virkņu dublēšanās atmiņā,
- ātrāk salīdzināt virknes pēc atsauces (==), ja tās ir no baseina.
Piemērs:
String a = "hello";
String b = "hello";
System.out.println(a == b); // true, abas atsaucas uz to pašu objektu StringPool
String c = new String("hello");
System.out.println(a == c); // false, c ir jauns objekts ārpus baseina