Sobes.tech
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();
    }
}