Rumah > Java > javaTutorial > Adakah Pemungut Sampah Java Akan Menuntut Semula Medan Statik Seperti `myObject` dalam `MyUtils`?

Adakah Pemungut Sampah Java Akan Menuntut Semula Medan Statik Seperti `myObject` dalam `MyUtils`?

Patricia Arquette
Lepaskan: 2024-11-28 13:21:15
asal
945 orang telah melayarinya

Will Java's Garbage Collector Reclaim Static Fields Like `myObject` in `MyUtils`?

Pengumpulan Sampah Medan Statik di Jawa

Soalan:

Di Java, pertimbangkan kelas utiliti hipotesis yang hanya digunakan semasa persediaan program:

class MyUtils {
    private static MyObject myObject = new MyObject();
    /*package*/static boolean doStuff(Params... params) {
        // do stuff with myObject and params...
    }
}
Salin selepas log masuk

Adakah myObject layak untuk kutipan sampah apabila ia tidak lagi diperlukan atau adakah ia akan berterusan sepanjang hayat program?

Jawapan:

Medan statik tidak layak untuk kutipan sampah semasa kelasnya dimuatkan. Ia hanya boleh dikumpul apabila pemuat kelas yang bertanggungjawab untuk memuatkan kelas itu sendiri adalah sampah yang dikumpul.

Menurut Spesifikasi Bahasa Java (JLS) Bahagian 12.7, "Memunggah Kelas dan Antara Muka":

"Sesuatu kelas atau antara muka boleh dipunggah jika dan hanya jika pemuat kelas yang menentukannya boleh dituntut semula oleh pengumpul sampah [...] Kelas dan antara muka yang dimuatkan oleh pemuat bootstrap mungkin tidak dipunggah."

Oleh itu, dalam contoh yang diberikan, myObject akan berterusan selagi kelas MyUtils dimuatkan. Ia tidak akan dikumpul sampah sehingga pemuat kelas yang memuatkan MyUtils juga layak untuk kutipan sampah.

Atas ialah kandungan terperinci Adakah Pemungut Sampah Java Akan Menuntut Semula Medan Statik Seperti `myObject` dalam `MyUtils`?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan