Sobes.tech
Junior — Middle

Kunt u uitleggen wat een zwakke referentie is in de context van geheugenbeheer in Java?

sobes.tech AI

Antwoord van AI

De SoftReference in Java is een type referentie dat het mogelijk maakt dat een object wordt verzameld door de garbage collector als er onvoldoende geheugen is, maar het object wordt behouden zolang er voldoende geheugen is.

Dit is handig voor caching: objecten met zachte referenties worden niet onmiddellijk verwijderd, maar alleen wanneer het nodig is om geheugen vrij te maken.

Voorbeeld van het gebruik van een zachte referentie:

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; // nu is het object alleen nog toegankelijk via de zachte referentie

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Object is toegankelijk");
        } else {
            System.out.println("Object is verzameld door de garbage collector");
        }
    }
}