Junior — Middle
Kas ir virknes literālo steks un kam tas ir nepieciešams atmiņas pārvaldībā?
sobes.tech AI
Atbilde no AI
String Pool ir īpaša atmiņas zona Java, kurā tiek glabāti unikāli string objekti. Kad tiek izveidots string literals, JVM pārbauda, vai tas jau ir puli. Ja ir, tas atgriež atsauci uz to; ja nav, tas pievieno jaunu.
Kam tas ir nepieciešams?
- Atmiņas taupīšana: identiski stringi tiek glabāti tikai vienu reizi.
- Veiktspējas uzlabošana: salīdzinājums ar atsauci (==) ir iespējams puliem.
Piemērs:
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, abas atsauces norāda uz to pašu objektu puli
String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 ir jauns objekts ārpus puli
Tādējādi String Pool palīdz efektīvi pārvaldīt atmiņu, strādājot ar stringiem.