Sobes.tech
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-ში.