Object.JavaFinalize Methode

Definition

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

[Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")]
protected virtual void JavaFinalize ();
[<Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")>]
abstract member JavaFinalize : unit -> unit
override this.JavaFinalize : unit -> unit
Attribute

Ausnahmen

Hinweise

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind. Eine Unterklasse überschreibt die finalize Methode, um Systemressourcen zu entfernen oder andere Bereinigungen durchzuführen.

Der allgemeine Vertrag von finalize ist, dass es aufgerufen wird, wenn und wenn der Java-&Handel; der virtuelle Computer hat festgestellt, dass es keine Möglichkeit mehr gibt, mit der auf dieses Objekt von einem Thread zugegriffen werden kann, der noch nicht gestorben ist, außer als Ergebnis einer Aktion, die durch die Finalisierung eines anderen Objekts oder einer klasse ausgeführt wird, die zum Abschluss bereit ist. Die finalize -Methode kann alle Aktionen ausführen, einschließlich der wieder verfügbaren Objekte für andere Threads. Der übliche Zweck von finalizebesteht jedoch darin, Bereinigungsaktionen auszuführen, bevor das Objekt unwiderruflich verworfen wird. Beispielsweise kann die finalize-Methode für ein Objekt, das eine Eingabe-/Ausgabeverbindung darstellt, explizite E/A-Transaktionen ausführen, um die Verbindung zu unterbrechen, bevor das Objekt endgültig verworfen wird.

Die finalize -Methode der -Klasse Object führt keine besondere Aktion aus. Sie gibt einfach normal zurück. Unterklassen von Object können diese Definition überschreiben.

Die Programmiersprache Java garantiert nicht, welcher Thread die finalize Methode für ein bestimmtes Objekt aufruft. Es ist jedoch garantiert, dass der Thread, der finalize aufruft, keine vom Benutzer sichtbaren Synchronisierungssperren enthält, wenn die Finalize aufgerufen wird. Wenn von der finalize-Methode eine uncaught-Ausnahme ausgelöst wird, wird die Ausnahme ignoriert, und die Finalisierung dieses Objekts wird beendet.

Nachdem die finalize -Methode für ein Objekt aufgerufen wurde, wird keine weitere Aktion ausgeführt, bis der virtuelle Java-Computer erneut festgestellt hat, dass es keine Möglichkeit mehr gibt, auf dieses Objekt von einem Thread zu zugreifen, der noch nicht gestorben ist, einschließlich möglicher Aktionen von anderen Objekten oder Klassen, die fertig gestellt werden können. An diesem Punkt kann das Objekt verworfen werden.

Die finalize -Methode wird nie mehr als einmal von einem virtuellen Java-Computer für ein bestimmtes Objekt aufgerufen.

Jede Ausnahme, die von der finalize -Methode ausgelöst wird, bewirkt, dass die Finalisierung dieses Objekts angehalten wird, andernfalls jedoch ignoriert wird.

Java-Dokumentation für java.lang.Object.finalize().

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: