Sobes.tech
Junior — Middle

¿Puedes explicar qué es una referencia suave en el contexto de la gestión de memoria en Java?

sobes.tech AI

Respuesta de la IA

La referencia suave (SoftReference) en Java es un tipo de referencia que permite que un objeto sea recolectado por el recolector de basura si en el sistema hay poca memoria, pero mientras haya suficiente memoria, el objeto se mantiene.

Esto es útil para el almacenamiento en caché: los objetos con referencias suaves no se eliminan inmediatamente, sino solo cuando es necesario liberar memoria.

Ejemplo de uso de una referencia suave:

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; // ahora el objeto solo es accesible a través de la referencia suave

        Object obj = softRef.get();
        if (obj != null) {
            System.out.println("Objeto accesible");
        } else {
            System.out.println("El objeto ya ha sido recolectado por el recolector de basura");
        }
    }
}