Sobes.tech
Junior — Middle

Môžete vysvetliť, čo je slabé odkazovanie v kontexte správy pamäte v Jave?

sobes.tech AI

Odpoveď od AI

V Java je SoftReference typ odkazu, ktorý umožňuje objektu byť zozbieraný garbage collectorom, ak v systéme je nedostatok pamäte, ale pri tom objekt zostáva zachovaný, pokiaľ je dostatok pamäte.

To je užitočné pre cacheovanie: objekty s mäkkými odkazmi nie sú odstránené okamžite, ale iba keď je potrebné uvoľniť pamäť.

Príklad použitia mäkkého odkazu:

import java.lang.ref.SoftReference;

public class SoftReferenceExample {
    public static void main(String[] args) {
        Object strongRef = new Object();
        SoftReference<Object> softRef = new SoftReference<>(strongRef);

        strongRef = null; // teraz je objekt dostupný iba cez mäkký odkaz

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objekt je dostupný");
        } else {
            System.out.println("Objekt už bol zozbieraný garbage collectorom");
        }
    }
}