Rumah >Java >javaTutorial >Di manakah Ahli Statik Java Disimpan dalam Memori?

Di manakah Ahli Statik Java Disimpan dalam Memori?

Susan Sarandon
Susan Sarandonasal
2024-12-04 08:37:11479semak imbas

Where Are Java Static Members Stored in Memory?

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!

Kenyataan:
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