Junior — Middle
Qual é a aplicação da classe SoftReference na gestão de memória em Java?
sobes.tech IA
Resposta da IA
No Java, a classe SoftReference é usada para criar referências suaves a objetos, que permitem ao coletor de lixo eliminar esses objetos quando há pouca memória, mas mantê-los enquanto houver memória suficiente.
Isto é útil para implementar caches: objetos que têm apenas referências suaves não são considerados completamente inacessíveis, mas podem ser eliminados se necessário para evitar um OutOfMemoryError.
Exemplo de uso:
SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);
byte[] data = cache.get();
if (data == null) {
// O objeto foi eliminado pelo coletor de lixo, é necessário recarregar os dados
data = new byte[1024 * 1024];
cache = new SoftReference<>(data);
}
Dessa forma, SoftReference ajuda a gerenciar a memória de forma eficiente, permitindo armazenar dados em cache, mas sem impedir que o coletor de lixo libere memória quando necessário.