Penelitian utama dalam artikel ini adalah upaya untuk mengesampingkan metode finalisasi () di Java, dan implementasi spesifik adalah sebagai berikut.
Kode uji
Paket com.alio.gc;/** * Hasil eksekusi: * */kelas publik finalizeCapEgc {public static finizeCapEpegc instance = null; public void isAlive () {System.out.println ("Ya, saya masih hidup"); } @Override Protected void finalize () melempar lempar {super.finalize (); System.out.println ("Finalisasi metode yang dieksekusi"); instance = ini; } public static void main (string [] args) melempar interruptedException {instance = new finalizeescapegc (); instance = null; System.gc (); Thread.sleep (1000); instance.isalive (); // Ketika metode finalisasi tidak ditulis ulang, instance = nullpointerException pasti akan dilaporkan; System.gc (); Thread.sleep (1000); instance.isalive (); }}Hasil Eksekusi:
Finalisasi metode yang dieksekusi
ya, saya masih hidup
Pengecualian di Thread "Main" Java.lang.nullpointerException
di com.alio.gc.finalizeescapegc.main (finalizeescapegc.java:29)
di sun.reflect.nativeMethodaccessorimpl.invoke0 (metode asli)
di sun.reflect.nativeMethodaccessorimpl.invoke (nativeMethodaCessorImpl.java:62)
di sun.reflect.delegatingmethodaccessorimpl.invoke (delegatingmethodaccessorimpl.java:43)
di java.lang.reflect.method.invoke (Method.java:498)
di com.intellij.rt.execution.application.appmain.main (appmain.java:134)
First Execute Instance = null; kemudian jalankan instance.isalive (); Ketika metode finalisasi tidak ditulis ulang, nullpointerException pasti akan dilaporkan.
Namun, hasil eksekusi yang sebenarnya adalah keberhasilan dalam pelarian dan kegagalan. Ini karena metode finalize () dari objek apa pun hanya akan secara otomatis dipanggil sekali oleh sistem. Jika objek menghadapi daur ulang berikutnya, metode finalisasi () tidak akan dieksekusi lagi
Cara menyelamatkan objek ini sangat tidak pasti. Dianjurkan agar Anda tidak perlu menggunakannya dan melupakan keberadaan metode ini.
Di atas adalah semua tentang kode yang mencakup kode contoh metode finalisasi () di Java, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!