Sobes.tech
Junior — Middle

Java saqlash xotirasida satr obyektlari qayerda joylashgan?

sobes.tech AI

AIdan javob

Java'da, satrlar ob'ektlari (String) String Pool (satrlar havzasi) deb nomlangan maxsus xotira hududida saqlanadi va bu Metaspace yoki eski JVM versiyalarida PermGen**da joylashgan.

Satrlik literal yaratilganda, JVM satrlar havuzini tekshiradi: agar bunday satr allaqachon mavjud bo'lsa, mavjud ob'ektga havola qaytariladi; aks holda, yangi ob'ekt yaratiladi va havuzga joylashtiriladi. Bu xotirani tejash va satrlarni solishtirishni tezlashtirishga yordam beradi.

Agar satr new String() konstruktoridan foydalanib yaratilsa, ob'ekt yong'oq (heap)da yaratiladi va avtomatik ravishda String Poolga joylashtirilmaydi, faqat intern() metodini chaqirish bilan.

Misol:

String s1 = "hello"; // havuzda satr
String s2 = new String("hello"); // ob'ekt yong'oqda
String s3 = s2.intern(); // s3 havuzdagi satrga murojaat qiladi