Junior — Middle
Java yaddaşında sətir obyektləri harada yerləşir?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da, sətir obyektləri (String) xüsusi yaddaş sahəsində saxlanılır və buna String Pool (sətir hovuzu) deyilir və bu sahə Metaspace və ya köhnə JVM versiyalarında PermGen-də yerləşir.
Sətir literal yaradıldıqda, JVM sətir hovuzunu yoxlayır: əgər belə bir sətir artıq mövcuddursa, mövcud obyektə istinad qaytarılır; əks halda, yeni obyekt yaradılır və hovuzda yerləşdirilir. Bu yaddaşı qənaət etməyə və sətirlərin müqayisəsini sürətləndirməyə kömək edir.
Əgər sətir new String() konstruktoru ilə yaradılırsa, obyekt yığımda (heap) yaradılır və avtomatik olaraq String Pool-a daxil olmur, yalnız intern() metodu açıq şəkildə çağırıldıqda.
Nümunə:
String s1 = "hello"; // hovuzda sətir
String s2 = new String("hello"); // obyekt yığımda
String s3 = s2.intern(); // s3 hovuzdakı sətirə istinad edir