Sobes.tech
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, como try-with-resources e a interface AutoCloseable.

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.