Tujuan metode ini dijelaskan dalam dokumentasi API sebagai berikut:
itu dipanggil jika dan ketika mesin virtual Java telah menentukan bahwa tidak ada lagi sarana dengan mana objek ini dapat diakses oleh utas apa pun yang belum mati, kecuali sebagai akibat dari tindakan yang diambil oleh finalisasi beberapa objek lain atau kelas yang siap diselesaikan ...
tujuan umum finalize
... adalah untuk melakukan tindakan pembersihan sebelum objek dibuang secara tidak dapat ditarik kembali . Misalnya, metode finalisasi untuk objek yang mewakili koneksi input / output mungkin melakukan transaksi I / O eksplisit untuk memutus koneksi sebelum objek tersebut dibuang secara permanen ...
Jika Anda juga tertarik pada alasan mengapa perancang bahasa telah memilih bahwa "objek dibuang secara tidak dapat ditarik kembali" ( sampah dikumpulkan ) dengan cara yang berada di luar kendali pemrogram aplikasi ("kita seharusnya tidak pernah mengandalkan"), ini telah dijelaskan dalam jawaban terkait pertanyaan :
pengumpulan sampah otomatis ... menghilangkan seluruh kelas kesalahan pemrograman yang mengganggu programmer C dan C ++. Anda dapat mengembangkan kode Java dengan keyakinan bahwa sistem akan menemukan banyak kesalahan dengan cepat dan bahwa masalah utama tidak akan aktif sampai kode produksi Anda dikirimkan.
Kutipan di atas, pada gilirannya, diambil dari dokumentasi resmi tentang tujuan desain Java , yang dapat dianggap referensi otoritatif menjelaskan mengapa desainer bahasa Jawa memutuskan dengan cara ini.
Untuk diskusi agnostik bahasa yang lebih rinci dan preferensi ini, lihat bagian OOSC 9.6 Manajemen memori otomatis (sebenarnya, tidak hanya bagian ini tetapi seluruh bab 9 sangat layak dibaca jika Anda tertarik pada hal-hal seperti itu). Bagian ini dibuka dengan pernyataan yang tidak ambigu:
Lingkungan OO yang baik harus menawarkan mekanisme manajemen memori otomatis yang akan mendeteksi dan mendapatkan kembali objek yang tidak terjangkau, memungkinkan pengembang aplikasi untuk berkonsentrasi pada pengembangan aplikasi pekerjaan mereka.
Diskusi sebelumnya harus cukup untuk menunjukkan betapa pentingnya memiliki fasilitas seperti itu tersedia. Dalam kata-kata Michael Schweitzer dan Lambert Strether:
Program berorientasi objek tanpa manajemen memori otomatis kira-kira sama dengan pressure cooker tanpa katup pengaman: cepat atau lambat benda itu pasti akan meledak!