Object.JavaFinalize Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 finalize
besteht 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.