Adakah Menugaskan Objek kepada Null dalam Java Memberi Impak Pengumpulan Sampah?
Menetapkan rujukan objek yang tidak digunakan kepada null di Jawa telah lama menjadi topik perdebatan di kalangan pemaju. Sesetengah percaya ia meningkatkan kutipan sampah, manakala yang lain berpendapat ia adalah kepercayaan karut pengaturcaraan voodoo.
GC dalam Java Moden
Menurut dokumentasi Java Garbage Collector, Java GC moden adalah sangat cekap. Ia secara automatik membersihkan objek yang tidak boleh dicapai sejurus selepas ia menjadi begitu, kedua-dua pembolehubah tempatan dan kejadian kelas.
Bila Perlu Ditetapkan Secara Eksplisit kepada Null
Menetapkan rujukan objek secara eksplisit kepada null hanya perlu jika anda tahu ia tetap dirujuk di tempat lain, contohnya, tatasusunan yang disimpan dalam skop. Dalam kes sedemikian, membatalkan elemen tatasusunan individu mungkin sesuai.
Contoh ArrayList
Kelas Java ArrayList menyediakan contoh membatalkan objek secara eksplisit dalam keluarkan kaedah. Selepas mengalih keluar elemen daripada tatasusunan, elemen pada indeks terdahulu ditetapkan kepada null untuk menunjukkan ketersediaannya untuk pengumpulan sampah.
Kesamaan Fungsian
Adalah penting untuk ambil perhatian bahawa menetapkan objek secara eksplisit kepada null tidak mencetuskan kutipan sampah segera. Selagi tiada rujukan kepada objek kekal, kedua-dua coretan kod berikut adalah setara dari segi fungsi:
void foo() { Object o = new Object(); // do stuff with o }
void foo() { Object o = new Object(); // do stuff with o o = null; }
Kesimpulan
Secara umum, memberikan objek secara eksplisit kepada null di Jawa mempunyai impak yang minimum pada kutipan sampah. Java GC moden adalah cekap dan secara automatik akan mengumpul objek yang tidak boleh dicapai. Pembatalan eksplisit hanya boleh digunakan apabila diketahui bahawa objek akan tetap dirujuk.
Atas ialah kandungan terperinci Adakah Menetapkan Objek kepada Null di Java Sebenarnya Meningkatkan Pengumpulan Sampah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!