Java dilində müxtəlif referans növləri nədir və onlar necə tullantıların toplanmasına təsir edir?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da, Garbage Collector-ın (Çöp Toplayıcı) davranışına təsir edən müxtəlif referans növləri mövcuddur:
-
Güclü Referans (Strong Reference) — obyektə adi referansdır. Güclü referanslar mövcud olduqda, obyekt silinməz.
-
Yumşaq Referans (Soft Reference) — yumuşaq referansa sahib obyekt, yalnız yaddaş çatışmazlığı zamanı silinir. Keş üçün istifadə olunur.
-
Zəif Referans (Weak Reference) — zəif referansa sahib 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. Obyekt 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.