Struktur memori JVM: 1. Pembilang program; 2. Timbunan mesin maya Java; 3. Timbunan kaedah setempat; Fungsinya: 1. Pembilang program, digunakan untuk merekodkan alamat arahan seterusnya yang akan dilaksanakan, yang merupakan kawasan memori peribadi benang 2. Timbunan mesin maya Java, yang menyimpan pembolehubah tempatan kaedah, beberapa keputusan, dan maklumat panggilan dan pengembalian kaedah Setiap utas mempunyai tindanan mesin maya sendiri Setiap panggilan kaedah mencipta bingkai tindanan untuk menyimpan maklumat pelaksanaan yang berkaitan. dll.
Sistem pengendalian tutorial ini: sistem Windows 10, komputer DELL G3.
Struktur memori JVM (Java Virtual Machine) adalah asas untuk menjalankan program Java. JVM membahagikan memori kepada kawasan yang berbeza, masing-masing dengan fungsi dan kitaran hayatnya yang khusus. Berikut adalah pengenalan terperinci kepada struktur memori JVM:
1. Daftar Kaunter Program: Kaunter program digunakan untuk menyimpan alamat arahan seterusnya yang akan dilaksanakan. Ia adalah kawasan peribadi-benang, dan setiap rangkaian mempunyai kaunter program bebas. Apabila utas melaksanakan kaedah, pembilang program menyimpan alamat arahan kod bait yang dilaksanakan oleh utas semasa apabila utas melaksanakan kaedah asli, pembilang program kosong.
2. Timbunan Mesin Maya Java: Timbunan Mesin Maya Java adalah peribadi kepada utas dan kitaran hayatnya adalah sama dengan utas. Setiap benang mencipta tindanan mesin maya apabila ia dicipta, dan setiap panggilan kaedah (termasuk kaedah disegerakkan) mencipta bingkai tindanan untuk menyimpan pembolehubah tempatan, tindanan operan, pautan dinamik dan maklumat keluar kaedah. Setiap bingkai tindanan sepadan dengan panggilan kaedah.
3. Timbunan Kaedah Asli: Timbunan kaedah asli digunakan untuk menyokong pelaksanaan kaedah asli.
4. Heap: Heap ialah kawasan memori terbesar dalam JVM dan digunakan untuk memperuntukkan memori secara dinamik. Memori timbunan dikongsi oleh semua benang dan digunakan terutamanya untuk menyimpan kejadian objek. Memori timbunan adalah kawasan kerja utama pemungut sampah Melalui mekanisme pengumpulan sampah, objek yang tidak lagi digunakan secara automatik dikitar semula dan ruang ingatan timbunan dilepaskan.
5 Kawasan Kaedah: Kawasan kaedah digunakan untuk menyimpan maklumat kelas, pemalar, pembolehubah statik dan data lain yang telah dimuatkan oleh mesin maya. Ia adalah kawasan yang dikongsi oleh semua rangkaian. Berbanding dengan timbunan, kecekapan pengumpulan sampah bagi kawasan kaedah adalah lebih rendah, terutamanya kerana terdapat kurang kitar semula dalam kumpulan malar Walau bagaimanapun, dengan pembangunan pengkompil JIT dan pelaksanaan perkongsian data kelas, kecekapan kitar semula kawasan kaedah juga telah bertambah baik.
Di atas ialah lima bahagian struktur memori JVM Kawasan timbunan dan kaedah adalah kawasan yang dikongsi oleh semua benang, manakala pembilang program, timbunan mesin maya Java dan timbunan kaedah tempatan adalah kawasan peribadi-benang. Kawasan ini memainkan peranan penting apabila JVM menjalankan program Java:
1 Pembilang program: Digunakan untuk merekodkan alamat arahan seterusnya yang akan dilaksanakan, ia adalah kawasan ingatan peribadi benang.
2. Timbunan mesin maya Java: Menyimpan pembolehubah setempat kaedah, beberapa hasil dan maklumat panggilan dan pengembalian kaedah Setiap urutan mempunyai tindanan mesin maya sendiri, dan setiap panggilan kaedah mencipta bingkai tindanan untuk menyimpan Berkaitan maklumat pelaksanaan. Timbunan mesin maya Java juga bersifat peribadi benang.
3. Timbunan kaedah asli: Digunakan untuk menyokong pelaksanaan kaedah asli.
4. Heap: Heap memory ialah kawasan memori terbesar dalam JVM dan digunakan terutamanya untuk menyimpan kejadian objek. Ia adalah kawasan yang dikongsi oleh semua rangkaian. Pengumpul sampah secara automatik akan mengitar semula objek yang tidak lagi digunakan dan melepaskan ruang memori timbunan.
5. Kawasan kaedah: Digunakan untuk menyimpan maklumat kelas, pemalar, pembolehubah statik dan data lain yang telah dimuatkan oleh mesin maya. Ia adalah kawasan yang dikongsi oleh semua rangkaian. Dengan pembangunan penyusun JIT dan pelaksanaan perkongsian data kelas, kecekapan kitar semula kawasan kaedah juga telah bertambah baik.
Kawasan ini memainkan peranan penting apabila JVM menjalankan program Java. Mereka bekerjasama untuk memastikan operasi normal program Java.
Atas ialah kandungan terperinci Apakah struktur dan fungsi memori jvm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!