Junior — Middle
Qual é a aplicação do PhantomReference na gestão de memória e como funciona em Java?
sobes.tech IA
Resposta da IA
O PhantomReference em Java é usado para um controle mais fino da memória e liberação de recursos após o objeto se tornar inalcançável, mas antes que a memória dele seja realmente liberada pelo coletor de lixo.
Como funciona:
- PhantomReference faz referência a um objeto, mas não impede sua coleta.
- Após o objeto se tornar inalcançável, a PhantomReference é colocada na fila ReferenceQueue.
- O programa pode monitorar essa fila e executar ações adicionais (por exemplo, liberar recursos nativos) quando o objeto estiver pronto para ser removido.
Ao contrário de SoftReference e WeakReference, get() em PhantomReference sempre retorna null, portanto, não é usado para acessar o objeto, apenas para notificar sua remoção.
Um exemplo de uso é liberar recursos associados ao objeto, que não são gerenciados pela JVM, como descritores de arquivo ou memória nativa.