Junior — Middle
Puteți explica ce este o referință slabă în contextul gestionării memoriei în Java?
sobes.tech AI
Răspuns de la AI
Referința moale (SoftReference) în Java este un tip de referință care permite obiectului să fie colectat de garbage collector dacă memoria sistemului este insuficientă, dar în același timp obiectul rămâne păstrat atâta timp cât memoria este suficientă.
Acest lucru este util pentru caching: obiectele cu referințe moi nu sunt eliminate imediat, ci doar atunci când este necesar să se elibereze memorie.
Exemplu de utilizare a unei referințe moi:
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; // acum obiectul este accesibil doar prin referința moale
Object obj = softRef.get();
if (obj != null) {
System.out.println("Obiect accesibil");
} else {
System.out.println("Obiect a fost colectat de garbage collector");
}
}
}