Sobes.tech
Junior — Middle

Pode explicar o que acontece ao chamar o método finalize em Java e em que casos ele é chamado?

sobes.tech IA

Resposta da IA

No Java, o método finalize() é chamado pelo coletor de lixo antes de remover um objeto da memória. A sua tarefa é libertar recursos que não são geridos pela JVM, como fechar ficheiros ou ligações de rede.

No entanto, a chamada a finalize() não é garantida e pode ocorrer com atraso ou não ocorrer de todo, pelo que não é recomendado confiar nela para libertar recursos.

Exemplo de uso:

@Override
protected void finalize() throws Throwable {
    try {
        // Libertar recursos
    } finally {
        super.finalize();
    }
}

Nas versões modernas do Java, recomenda-se usar construções try-with-resources ou fechar explicitamente os recursos, em vez de confiar em finalize().