Di manakah dalam Memori Ahli Statik Disimpan dalam Java?
Kaedah dan pembolehubah statik, seperti yang ditunjukkan dalam coretan kod Java yang disediakan, disimpan dalam bahagian PermGen memori timbunan dalam Oracle's Hotspot JVM dan lain-lain berdasarkannya. PermGen memegang meta-data, termasuk data berkaitan kelas.
Mekanisme Penyimpanan:
-
Pembolehubah statik: Hanya nilai teknikalnya ( primitif atau rujukan) disimpan dalam PermGen. Jika pembolehubah statik merujuk objek, objek itu sendiri berada di kawasan timbunan standard, bukan PermGen.
-
Kaedah statik: Semua kaedah, termasuk yang statik, menduduki ruang dalam PermGen sebagai sebahagian daripada pantulan data.
Penting Nota:
- PermGen hanya digunakan untuk metadata; medan statik disimpan dalam timbunan biasa.
- Eclipse OpenJ9 dan JVM lain mungkin tidak mempunyai PermGen atau Metaspace.
- Bergantung pada finalize() untuk kutipan sampah adalah tidak boleh dipercayai. Terpulang kepada JVM untuk menentukan masa kutipan sampah dan objek yang layak.
- Menetapkan pembolehubah statik kepada null sahaja mungkin tidak menjamin pengalihan keluar objek daripada timbunan.
- Cara kod dan data disimpan boleh berbeza-beza bergantung pada pelaksanaan dan versi JVM.
Atas ialah kandungan terperinci Di manakah Ahli Statik Java Disimpan dalam Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!