Junior — Middle
შეგიძლიათ ჩამოთვალოთ Java-ში არსებული მიმთითებლების ტიპები და მათი თვისებები?
sobes.tech AI
პასუხი AI-სგან
Java-ში არსებობს შემდეგი ტიპები მიმაგრებები, რომლებიც გავლენას ახდენენ ნაგვის შეგროვებაზე და მეხსიერების მართვაზე:
-
მტკიცე მიმაგრება (Strong Reference)
- ნაგულისხმევი მიმაგრება, რომელსაც ვიყენებთ როგორც წესი.
- მტკიცე მიმაგრებით ობიექტი არ მოიხსნება ნაგვის შეგროვებლის მიერ.
-
მშრალი მიმაგრება (Soft Reference)
- გამოიყენება ქეშირებისთვის.
- რბილი მიმაგრებით ობიექტები ამოიღება მხოლოდ მეხსიერების უკმარისობის დროს.
- კლასი:
java.lang.ref.SoftReference
-
სუსტი მიმაგრება (Weak Reference)
- სუსტი მიმაგრებით ობიექტები ამოიღება შემდეგი ნაგვის შეგროვების ციკლში, თუ არ არსებობს მტკიცე მიმაგრებები.
- გამოიყენება სუსტი ქეშების განხორციელებისთვის.
- კლასი:
java.lang.ref.WeakReference
-
ფანტომური მიმაგრება (Phantom Reference)
- გამოიყენება იმის დასათვალიერებლად, როდის არის ობიექტი მზად წაშლისთვის.
- არ იძლევა საშუალებას მიიღოთ ობიექტი
get()მეთოდით (დაბრუნება null-ია). - გამოიყენება რესურსების სუფთა წესრიგის უფრო ზუსტ კონტროლისთვის.
- კლასი:
java.lang.ref.PhantomReference
სუსტი მიმაგრების შექმნის მაგალითი:
import java.lang.ref.WeakReference;
String ძლიერი = new String("Hello");
WeakReference<String> სუსტი = new WeakReference<>(ძალა);
ძალა = null; // ახლა ობიექტი ხელმისაწვდომია მხოლოდ სუსტი მიმაგრებით
String მნიშვნელობა = სუსტი.get(); // შეიძლება დაბრუნდეს null, თუ ობიექტი უკვე შეგროვილია