Junior — Middle
Em que casos geralmente se utiliza o método finalize() em Java?
sobes.tech IA
Resposta da IA
O método finalize() em Java é utilizado para realizar ações de limpeza antes de o objeto ser eliminado pelo coletor de lixo. Normalmente, é usado para libertar recursos que não são geridos pela JVM, como fechar descritores de ficheiros ou libertar memória nativa.
No entanto, o uso de finalize() não é recomendado por várias razões:
- Não há garantia de quando ou se
finalize()será chamado. - Pode causar atrasos na libertação de recursos.
- Nas versões mais recentes do Java, o método
finalize()está obsoleto e foi substituído por mecanismos mais fiáveis, comotry-with-resourcese a interfaceAutoCloseable.
Exemplo de uso de finalize() (abordagem obsoleta):
@Override
protected void finalize() throws Throwable {
try {
// Libertar recursos
closeConnection();
} finally {
super.finalize();
}
}
A abordagem moderna é implementar a interface AutoCloseable e usar o bloco try-with-resources para garantir a libertação de recursos.