Pengumpulan Sampah di Java: Mekanisme Kitar Semula Objek
Pengenalan
Java menggunakan mekanisme pengumpulan sampah automatik (GC) untuk mengurus memori dan melepaskan objek yang tidak digunakan lagi. GC menjejaki rujukan objek untuk menentukan objek yang tidak lagi boleh diakses dan dengan itu membebaskan ingatan mereka.
Rujukan Objek
Sesuatu objek bertahan apabila ia dirujuk oleh objek lain. Jika tiada objek merujuk kepadanya, ia dianggap sampah. GC mengumpul dan mengeluarkan objek sampah yang tidak dirujuk.
Konsep utama Java GC
Cara Java GC berfungsi
Java GC adalah generasi, yang membahagikan timbunan kepada generasi yang berbeza, dan objek yang baru dicipta memasuki generasi muda. Jika sesuatu objek bertahan dalam generasi muda cukup lama, ia akan dinaikkan pangkat kepada generasi lama. GC akan lebih cenderung untuk mengumpul objek dalam generasi muda kerana terdapat lebih banyak sampah di sana.
Kes praktikal: Mengesan sampah
Anda boleh menggunakan kaedah System.gc()
untuk memaksa GC. Contoh kod berikut menunjukkan cara untuk mengesan objek sampah:
class MyClass { private static Object obj; public static void main(String[] args) { // 创建一个对象 obj = new Object(); // 将对该对象的引用设置为 null,使其成为垃圾 obj = null; // 执行垃圾回收 System.gc(); // 尝试访问该对象(会抛出 NullPointerException) obj.hashCode(); } }
Kesimpulan
Kutipan sampah Java menguruskan memori dengan menjejak rujukan objek dan melepaskan objek yang tidak digunakan. Ia adalah mekanisme generasi yang melakukan pengumpulan sampah dengan lebih kerap pada objek yang baru dicipta. Dengan memahami mekanisme ini, anda boleh mengoptimumkan kod anda dan mengelakkan kebocoran memori.
Atas ialah kandungan terperinci Bagaimanakah GC dalam Java mengitar semula objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!