Bagikan melalui


Object.JavaFinalize Metode

Definisi

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

[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
Atribut

Pengecualian

Keterangan

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. Subkelas mengambil alih finalize metode untuk membuang sumber daya sistem atau untuk melakukan pembersihan lainnya.

Kontrak finalize umum adalah bahwa itu dipanggil jika dan ketika Java ™ komputer virtual telah menentukan bahwa tidak ada lagi cara di mana objek ini dapat diakses oleh utas apa pun yang belum mati, kecuali sebagai akibat dari tindakan yang diambil oleh finalisasi beberapa objek atau kelas lain yang siap untuk diselesaikan. Metode finalize ini dapat mengambil tindakan apa pun, termasuk membuat objek ini tersedia lagi ke utas lain; tujuan yang biasa dari finalize, namun, adalah untuk melakukan tindakan pembersihan sebelum objek dibuang secara tidak dapat dibatalkan. Misalnya, metode finalisasi untuk objek yang mewakili koneksi input/output mungkin melakukan transaksi I/O eksplisit untuk memutuskan koneksi sebelum objek dibuang secara permanen.

Metode finalize kelas Object tidak melakukan tindakan khusus; itu hanya kembali secara normal. Subkelas Object dapat mengambil alih definisi ini.

Bahasa pemrograman Java tidak menjamin utas mana yang akan memanggil finalize metode untuk objek tertentu. Namun, dijamin bahwa utas yang memanggil finalisasi tidak akan menahan kunci sinkronisasi yang terlihat pengguna saat finalisasi dipanggil. Jika pengecualian yang tidak tertangkap dilemparkan oleh metode finalisasi, pengecualian diabaikan dan finalisasi objek tersebut berakhir.

finalize Setelah metode dipanggil untuk objek, tidak ada tindakan lebih lanjut yang diambil sampai komputer virtual Java kembali menentukan bahwa tidak ada lagi cara di mana objek ini dapat diakses oleh utas apa pun yang belum mati, termasuk kemungkinan tindakan oleh objek atau kelas lain yang siap untuk diselesaikan, di titik mana objek dapat dibuang.

Metode finalize ini tidak pernah dipanggil lebih dari sekali oleh komputer virtual Java untuk objek tertentu.

Pengecualian apa pun yang finalize dilemparkan oleh metode menyebabkan finalisasi objek ini dihentikan, tetapi diabaikan.

Dokumentasi Java untuk java.lang.Object.finalize().

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk