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");
}
}
}