Junior — Middle
Pode explicar o que é uma referência fraca no contexto do gerenciamento de memória em Java?
sobes.tech IA
Resposta da IA
A referência suave (SoftReference) em Java é um tipo de referência que permite que um objeto seja recolhido pelo coletor de lixo se o sistema estiver com pouca memória, mas enquanto houver memória suficiente, o objeto é mantido.
Isto é útil para caching: objetos com referências suaves não são removidos imediatamente, apenas quando é necessário liberar memória.
Exemplo de uso de referência 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; // agora o objeto está acessível apenas através da referência suave
Object obj = softRef.get();
if (obj != null) {
System.out.println("Objeto acessível");
} else {
System.out.println("Objeto já foi recolhido pelo coletor de lixo");
}
}
}