Java stellt die finalize-Methode bereit, die finalize zuerst aufruft, wenn der Garbage Collector Speicher freigibt, es gibt jedoch einige Missverständnisse.
1), Objekt darf nicht im Müll gesammelt werden.
2) Garbage Collection ist nicht gleichbedeutend mit „Zerstörung“ und finalize ist kein Destruktor.
3) Die Garbage Collection bezieht sich nur auf den Speicher.
4), Garbage Collection und Finalize sind alle unzuverlässig. Solange die JVM ihren Speicher nicht erschöpft hat, wird sie keine Zeit mit Speicherrecycling verschwenden.
Voraussetzungen für den Aufruf von finalize:
1), alle Objekte werden automatisch von der Garbage Collection aufgerufen, z. B. beim Ausführen von System.gc()
2), Programm Rufen Sie beim Verlassen
3 die finalize()-Methode für jedes Objekt auf und rufen Sie dabei explizit die finalize-Methode auf
Es wird nicht empfohlen, die finalize-Methode zu verwenden, um die Bereinigung von Nichtobjekten abzuschließen -Speicherressourcen. Es wird jedoch empfohlen, Folgendes zu verwenden: (1) Lokale Objekte bereinigen (durch JNI erstellte Objekte). (2) Als allgemeines Format zur Sicherstellung der Freigabe
bestimmter Nicht-Speicherressourcen (Sockets, Dateien, Ports usw.)
finalize()-Methode:
protected void finalize() { //finalization code here }
Einfacher Beispielcode:
public class FinalizationDemo { public static void main(String[] args) { Cake c1 = new Cake(1); Cake c2 = new Cake(2); Cake c3 = new Cake(3); c2 = c3 = null; System.gc(); //Invoke the Java garbage collector } } class Cake extends Object { private int id; public Cake(int id) { this.id = id; System.out.println("Cake Object " + id + "is created"); } protected void finalize() throws java.lang.Throwable { super.finalize(); System.out.println("Cake Object " + id + "is disposed"); } }
Laufergebnisse:
Cake Object 1is created Cake Object 2is created Cake Object 3is created Cake Object 3is disposed Cake Object 2is disposed
Das obige ist der detaillierte Inhalt vonBeispielcode für die Verwendung des Java-Schlüsselworts finalize. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!