Junior — Middle
O que acontece ao chamar o método finalize em um objeto em Java e quais recursos ele pode liberar?
sobes.tech IA
Resposta da IA
Em Java, o método finalize() é chamado pelo recolhedor de lixo antes de remover um objeto da memória. Este método destina-se a libertar recursos não geridos que não são libertados automaticamente, por exemplo:
- Fechar descritores de ficheiros
- Libertar ligações de rede
- Limpar recursos nativos
No entanto, o uso de finalize() não é recomendado, pois a sua chamada não é garantida e pode causar atrasos na libertação de recursos. As abordagens modernas sugerem o uso de try-with-resources ou libertação explícita de recursos.
Exemplo:
@Override
protected void finalize() throws Throwable {
try {
// libertar recursos
} finally {
super.finalize();
}
}