Sobes.tech
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.