Artikel ini menganalisis metode penghancuran objek di Java secara lebih rinci. Bagikan dengan semua orang untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Variabel tipe data dasar dan variabel referensi nama objek di Java semuanya merupakan variabel lokal jika didefinisikan dalam suatu metode. Namun objek itu sendiri belum tentu memiliki siklus hidup lokal. Jika ada variabel referensi lain ke objek di luar fungsi, siklus hidup objek tersebut meluas ke blok tempat variabel referensi lainnya berada.
Jika nilai atau nilai kembalian diteruskan dari referensi parameter fungsi yang dipanggil ke variabel tipe objek dari fungsi pemanggil utama, objek tersebut masih ada (tetapi siklus hidup variabel referensi dari objek fungsi yang dipanggil berakhir, jadi variabel referensinya adalah variabel lokal), saat ini objek menerobos masa pakai lokal dari variabel lokal.
Penghancuran objek Java
Pengumpul sampah di Java secara otomatis memindai memori dinamis objek Java secara teratur dan menandai semua objek referensi. Setelah objek dijalankan (tidak ada variabel referensi yang dikaitkan dengan objek), ia menghapus tandanya dan semua objek yang tidak ditandai akan didaur ulang sebagai sampah dan ruang memori yang ditempati oleh objek sampah dilepaskan.
Setelah objek dijalankan atau siklus hidupnya berakhir, ia akan menjadi objek sampah, namun tidak berarti akan langsung didaur ulang. Objek tersebut hanya akan didaur ulang ketika pengumpul sampah tidak aktif atau memori tidak mencukupi.
Setiap objek di Java memiliki metode finalize():
dilindungi void finalize()melemparkan yang Dapat Dilempar{}
Pengumpul sampah secara otomatis memanggil metode finalize() objek untuk melepaskan sumber daya sistem saat mendaur ulang suatu objek.
finalisasi() prototipe fungsi:
protected void | finalize () Dipanggil oleh pengumpul sampah pada suatu objek ketika sampahkoleksi menentukan bahwa tidak ada lagi referensi ke sana objeknya. |