Sobes.tech
Junior — Middle

Puoi spiegare cos'è un riferimento morbido nel contesto della gestione della memoria in Java?

sobes.tech AI

Risposta dell'AI

Il SoftReference in Java è un tipo di riferimento che permette all'oggetto di essere raccolto dal garbage collector se la memoria del sistema è insufficiente, ma l'oggetto viene mantenuto finché c'è memoria disponibile.

Questo è utile per la memorizzazione nella cache: gli oggetti con riferimenti soft non vengono eliminati immediatamente, ma solo quando è necessario liberare memoria.

Esempio di utilizzo di un soft reference:

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; // ora l'oggetto è accessibile solo tramite il soft reference

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Oggetto accessibile");
        } else {
            System.out.println("Oggetto già raccolto dal garbage collector");
        }
    }
}