Die Hauptuntersuchung in diesem Artikel ist ein Versuch, die Methode Finalize () in Java zu überschreiben, und die spezifische Implementierung lautet wie folgt.
Testcode
Paket com.alio.gc;/** * Ausführungsergebnis: * */Public Class FinalizeSeSeSeSeSeSeSeSecapeGC {public static FinalizeSeSeSeSeScapeGC Instance = null; public void iSalive () {System.out.println ("Ja, ich bin noch am Leben"); } @Override protected void enddefination () löscht Throwable {Super.finalize (); System.out.println ("Fertigstellung der Methode ausgeführt"); Instance = this; } public static void main (String [] args) löst InterruptedException aus {instance = new FinalIzeSeSeSeSeSeSeScapeGC (); Instance = null; System.gc (); Thread.sleep (1000); Instance.isalive (); // Wenn die Abschlussmethode nicht umschreibt, wird die Instance = nullPointerexception definitiv gemeldet. System.gc (); Thread.sleep (1000); Instance.isalive (); }}Ausführungsergebnisse:
Fertigstellung der ausgeführten Methode
Ja, ich lebe noch
Ausnahme im Thread "Haupt" java.lang.nullpointerexception
bei com.alio.gc.finalizeSeSeSeScapegc.main (endgültig
bei sun.reflect.nativemethodaccessorimpl.invoke0 (native Methode)
at sun.reflect.nativemethodaccessorimpl.invoke (NATIVEMETHOCACCESSORIMPL.JAVA:62)
at sun.reflect.delegatingMethAccessorimpl.invoke (DelegatingMethodAccessorimpl.java:43)
bei java.lang.reflect.method.invoke (method.java:498)
unter com.intellij.rt.execution.application.appmain.main (Appmain.java:134)
Zuerst ausführen Instance = null; dann execute instance.isalive (); Wenn die Abschlussmethode nicht umschreibt, wird ein Nullpointerexception definitiv gemeldet.
Das tatsächliche Ausführungsergebnis ist jedoch ein Erfolg bei der Flucht und ein Misserfolg. Dies liegt daran, dass die Methode von Finalize () eines Objekts nur einmal automatisch vom System aufgerufen wird. Wenn das Objekt zum nächsten Recycling ausgesetzt ist, wird die Methode Finalize () nicht erneut ausgeführt
Diese Art der Speicherung des Objekts ist äußerst unsicher. Es wird empfohlen, dass Sie es nicht verwenden und die Existenz dieser Methode vergessen müssen.
Im obigen Umfang dreht sich alles um den Code, der den Beispielcode für Finalize () in Java abdeckt. Ich hoffe, er wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!