Rumah > Java > javaTutorial > teks badan

Adakah Menetapkan Objek kepada Null di Java Sebenarnya Meningkatkan Pengumpulan Sampah?

DDD
Lepaskan: 2024-11-17 11:02:02
asal
474 orang telah melayarinya

Does Setting Objects to Null in Java Actually Improve Garbage Collection?

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
}
Salin selepas log masuk
void foo() {
   Object o = new Object();
   // do stuff with o
   o = null;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan