"Olá novamente. Hoje aprenderemos brevemente sobre o método finalize (). A Java Virtual Machine chama o método finalize () antes de destruir um objeto. O método é usado para desalocar recursos do sistema ou executar outras tarefas de limpeza. Na verdade, isso é exatamente o oposto de um construtor em Java. Você deve se lembrar que os construtores são usados ​​para criar objetos."

"A classe Object tem um método finalize (), o que significa que todas as outras classes também têm ( uma vez que todas as classes Java derivam da classe Object ). Você pode simplesmente implementar seu próprio método finalize () em sua classe."

"Aqui está um exemplo:"

Exemplo:
class Cat
{
    String name;

    Cat(String name)
    {
        this.name = name;
    }

    protected void finalize() throws Throwable
    {
        System.out.println(name + " has been destroyed");
    }
}

"Isso faz sentido, Ellie."

"Mas você deve estar ciente de que a Java Virtual Machine decide se deve chamar este método . Frequentemente, os objetos criados dentro de um método e declarados como lixo quando o método é concluído são destruídos imediatamente sem qualquer chamada para finalizar (). Este método é mais como backup do que como uma solução confiável. A melhor opção é liberar todos os recursos do sistema (configurando as referências a outros objetos como nulas) enquanto o objeto ainda está ativo. Falarei mais sobre as vantagens e nuances desse método posteriormente. Neste ponto , você só precisa entender duas coisas: esse método existe e ( surpresa! ) nem sempre é chamado."