„Hallo noch mal. Heute werden wir kurz etwas über die finalize()-Methode erfahren. Die Java Virtual Machine ruft die finalize()-Methode auf, bevor sie ein Objekt zerstört. Die Methode wird verwendet, um Systemressourcen freizugeben oder andere Bereinigungsaufgaben durchzuführen. Tatsächlich ist diese Methode genau das Gegenteil von einem Konstruktor in Java. Du erinnerst dich bestimmt, dass Konstruktoren verwendet werden, um Objekte zu erstellen.“

„Die Object-Klasse besitzt eine finalize()-Methode, was bedeutet, dass jede andere Klasse dies auch tut (da alle Java-Klassen von der Object-Klasse abgeleitet sind). Du kannst einfach deine eigene finalize()-Methode in deiner Klasse implementieren.“

„Hier ist ein Beispiel:“

Beispiel:
class Cat
{
    String name;

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

    protected void finalize() throws Throwable
    {
        System.out.println(name + " has been destroyed");
    }
}
2
Aufgabe
Java Syntax,  Level 6Lektion 3
Gesperrt
Code-Eingabe
Manchmal darf man gar nicht nachdenken, man muss es einfach raushauen! Auch wenn es sich paradox anhört, manchmal „erinnern“ sich deine Finger besser als dein bewusster Verstand. Deshalb wirst du es im Rahmen der Schulung im geheimen CodeGym-Zentrum manchmal mit Aufgaben zu tun bekommen, bei denen du Code eingeben musst. Wenn du Code eingibst, gewöhnst du dich an die Syntax und sammelst ein wenig dunkle Materie. Außerdem tust du etwas gegen deine Faulheit!

„Das klingt logisch, Ellie.“

„Aber du musst dir bewusst sein, dass die Java Virtual Machine entscheidet, ob diese Methode aufgerufen werden soll. Meistens werden Objekte, die innerhalb einer Methode erstellt und bei Abschluss der Methode als Garbage markiert werden, sofort zerstört, ohne dass finalize() aufgerufen wird. Diese Methode ist eher ein Backup als eine zuverlässige Lösung. Am besten ist es, alle Systemressourcen freizugeben (indem du die Referenzen auf andere Objekte auf null setzt), während das Objekt noch am Leben ist. Ich werde dir später mehr über die Vorteile und Details dieser Methode erzählen. An dieser Stelle musst du nur zwei Dinge wissen: Es gibt eine solche Methode und (Überraschung!) sie wird nicht immer aufgerufen.“