Junior — Middle
არის თუ არა String Pool-ის ტერიტორია JVM-ის heap მეხსიერების ტერიტორიასთან დაკავშირებული?
sobes.tech AI
პასუხი AI-სგან
დიახ, String Pool-ის ტერიტორია მიეკუთვნება JVM-ის heap მეხსიერების ტერიტორიას.
String Pool არის სპეციალური სტრიქონული ლიტერალების საცავი, რომელიც ინახება heap-ში. როდესაც სტრიქონის ლიტერალი შეიქმნება, JVM ამოწმებს, თუ ის უკვე არსებობს საცავში, და თუ არსებობს, აბრუნებს მის მითითებას; წინააღმდეგ შემთხვევაში, ახალი დამატება ხდება. ეს ეხმარება მეხსიერების დაზოგვას და სტრიქონების შედარების სიჩქარის გაზრდას.
ძველ Java ვერსიებში (Java 7-მდე), String Pool მდებარეობდა PermGen-ში (მუდმივი თაობა), რომელიც იყო ცალკე მეხსიერების ტერიტორია, მაგრამ Java 7-დან და შემდეგ ის გადაიტანეს heap-ში.