Основным исследованием в этой статье является попытка переопределить метод финализации () в Java, и конкретная реализация заключается в следующем.
Тестовый код
пакет com.alio.gc;/** * Результат выполнения: * */public class inpitalizeScapegc {public static anitizeScapegc ancess = null; public void iSalive () {System.out.println («Да, я все еще жив»); } @Override Protected void infintize () бросает throwable {super.finalize (); System.out.println («Закончить метод выполнен»); экземпляр = это; } public static void main (string [] args) бросает прерванные экзаливы {encess = new finalizeScapegc (); экземпляр = null; System.gc (); Thread.sleep (1000); exante.isalive (); // Когда метод завершения не переписывается, экземпляр = NullPointerException определенно будет сообщено; System.gc (); Thread.sleep (1000); exante.isalive (); }}Результаты исполнения:
завершить метод выполненного
Да, я все еще жив
Исключение в потоке "Main" java.lang.nullPointerException
на com.alio.gc.finalizeScapegc.main (infintizeScapegc.java:29)
в Sun.Reflect.nativeMethodaccsorsImpl.invoke0 (нативный метод)
на Sun.Reflect.NativeMethodaccessorImpl.invoke (nativeMethodaccessorImpl.java:62)
на sun.reflect.delegatingmethodaccsorsimpl.invoke (DelegatingMethodacccessOrimpl.java:43)
на java.lang.reflect.method.invoke (method.java:498)
at com.intellij.rt.execution.application.appmain.main (appmain.java:134)
Первое выполнение экземпляра = null; затем выполнить exante.isalive (); Когда метод завершения не переписывается, обязательно будет сообщено о NullpointerException.
Тем не менее, фактический результат выполнения - успех в побеге и неудача. Это связано с тем, что метод infintize () любого объекта будет автоматически вызоваться только один раз системой. Если объект сталкивается с следующей переработкой, его метод завершения () не будет выполнен снова
Этот способ сохранения объекта чрезвычайно неопределен. Рекомендуется, чтобы вам не нужно его использовать и забывать о существовании этого метода.
Выше приведенное дело о коде, охватывающем пример метода infintize () пример в Java, я надеюсь, что он будет полезен для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!