Rumah >Java >javaTutorial >Di mana dalam Memori Java Adakah Kaedah dan Pembolehubah Statik Disimpan?

Di mana dalam Memori Java Adakah Kaedah dan Pembolehubah Statik Disimpan?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 06:01:23356semak imbas

Where in Java Memory Are Static Methods and Variables Stored?

Di manakah Kaedah dan Pembolehubah Statik Disimpan dalam Java?

Tidak seperti kaedah dan pembolehubah contoh, elemen statik dalam Java tidak dikaitkan dengan kejadian tertentu sebuah kelas. Memahami lokasi memori mereka adalah penting untuk mengoptimumkan prestasi program.

Penyimpanan Memori Kaedah dan Pembolehubah Statik

Kaedah dan pembolehubah statik disimpan dalam kawasan memori timbunan yang berasingan dipanggil PermGen (atau MetaSpace dalam Java 8 ). Kawasan ini dikhaskan terutamanya untuk menyimpan data refleksi dan maklumat tentang kelas yang dimuatkan, termasuk ahli statiknya.

PermGen / MetaSpace

PermGen (kini tidak digunakan lagi) dan MetaSpace ialah memori ruang yang menyimpan data peringkat kelas seperti pembolehubah statik dan maklumat kaedah. Mereka bukan sebahagian daripada timbunan biasa yang digunakan untuk objek yang diperuntukkan timbunan. Pembolehubah statik diperuntukkan dalam ruang ini, mengekalkan nilai teknikalnya (cth., primitif atau rujukan).

Bukan Timbunan vs. Timbunan

Oleh itu, kaedah dan pembolehubah statik disimpan di luar ingatan timbunan tradisional di mana contoh objek berada. Pemisahan ini memastikan elemen statik kekal boleh diakses merentas semua kejadian kelas, tanpa mengira kitaran hayatnya.

Pengumpulan Sampah dan Pembolehubah Statik

Pembolehubah statik bukan sampah secara automatik- dikumpul. Walaupun contoh kelas tidak lagi dirujuk, pembolehubah statiknya kekal selagi kelas itu sendiri dimuatkan. Untuk mengeluarkan sumber yang dikaitkan dengan pembolehubah statik secara manual, anda boleh menetapkannya secara eksplisit kepada null atau menggunakan kaedah finalize() (walaupun ia tidak dijamin untuk dilaksanakan sebelum kutipan sampah).

Atas ialah kandungan terperinci Di mana dalam Memori Java Adakah Kaedah dan Pembolehubah Statik Disimpan?. 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