Java ენის სხვადასხვა სახის მიმაგრებები რა განსხვავებაა და როგორ ახდენენ გავლენას ნაგვის შეგროვებაზე?
sobes.tech AI
პასუხი AI-სგან
Java-da, Garbage Collector-ın (qoparçı toplayıcısının) davranışına təsir edən müxtəlif növ referanslar mövcuddur:
-
Güclü Referans (Strong Reference) — obyektə adi referans. Güclü referanslar mövcud olduqda, obyekt silinməz.
-
Yumşaq Referans (Soft Reference) — yumşaq referanslı obyekt yalnız yaddaş çatışmazlığı zamanı silinir. Keş üçün istifadə olunur.
-
Zəif Referans (Weak Reference) — zəif referanslı obyekt növbəti çöp toplayıcı keçidində silinə bilər, hətta zəif referanslar olsa belə.
-
Fantom Referans (Phantom Reference) — obyektin silinməyə hazır olduğu anı izləmək üçün istifadə olunur, lakin hələ silinməyib. Objekti silindikdən sonra əlavə tədbirlər görməyə imkan verir.
Zəif referans nümunəsi:
import java.lang.ref.WeakReference;
public class WeakRefExample {
public static void main(String[] args) {
Object obj = new Object();
WeakReference<Object> weakRef = new WeakReference<>(obj);
obj = null; // Güclü referansı silirik
System.gc(); // Çöp toplayıcıyı işə salırıq
if (weakRef.get() == null) {
System.out.println("Obyekt silindi");
} else {
System.out.println("Obyekt hələ mövcuddur");
}
}
}
Bu şəkildə, referans növünün seçimi obyektlərin həyat müddətini və yaddaşın səmərəliliyini idarə etməyə imkan verir.