"Ciao di nuovo. Oggi parleremo brevemente del metodo finalize (). La Java Virtual Machine chiama il metodo finalize () prima di distruggere un oggetto. Il metodo viene utilizzato per deallocare le risorse di sistema o eseguire altre attività di pulizia. In effetti, questo method è l'esatto opposto di un costruttore in Java. Ricorderete che i costruttori sono usati per creare oggetti."

"La classe Object ha un metodo finalize (), il che significa che anche ogni altra classe ( poiché tutte le classi Java derivano dalla classe Object ). Puoi semplicemente implementare il tuo metodo finalize () nella tua classe."

"Ecco un esempio:"

Esempio:
class Cat
{
    String name;

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

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

"Ha senso, Ellie."

"Ma dovresti essere consapevole del fatto che la Java Virtual Machine decide se chiamare questo metodo . Il più delle volte, gli oggetti creati all'interno di un metodo e dichiarati spazzatura quando il metodo viene completato vengono distrutti immediatamente senza alcuna chiamata a finalize (). Questo metodo è più come il backup piuttosto che una soluzione affidabile.L'opzione migliore è rilasciare tutte le risorse di sistema (impostando i riferimenti ad altri oggetti su null) mentre l'oggetto è ancora vivo.Ti dirò di più sui vantaggi e le sfumature di questo metodo più avanti.A questo punto , devi solo capire due cose: esiste un tale metodo e ( sorpresa! ) non sempre viene chiamato."