1. Mekanisme pemuatan kelas
dibahagikan kepada pemuatan, pengesahan, penyediaan, penghuraian, pemulaan, penggunaan dan pemunggahan.
(1) Memuatkan
mencari cakera keras dan membaca fail bytecode melalui IO Ia akan dimuatkan hanya apabila kelas digunakan, contohnya, memanggil main(). kaedah kelas, objek baharu, dsb., semasa fasa pemuatan, objek java.lang.Class yang mewakili kelas ini akan dijana dalam memori, yang berfungsi sebagai pintu masuk akses kepada pelbagai data kelas ini dalam kawasan kaedah.
(2) Sahkan
Sahkan ketepatan fail bytecode.
(3) Sediakan
untuk memperuntukkan memori kepada pembolehubah statik kelas dan memberikannya nilai lalai.
(4) Parse
Ganti rujukan simbolik dengan rujukan langsung Peringkat ini akan menggantikan beberapa kaedah statik (rujukan simbolik, seperti kaedah main() dengan penunjuk ke memori di mana data berada. disimpan atau Mengendalikan, dsb. (rujukan langsung), ini adalah apa yang dipanggil proses pemautan statik (selesai semasa pemuatan kelas), pemautan dinamik selesai semasa menjalankan program untuk menggantikan rujukan simbolik dengan rujukan langsung, pelajaran seterusnya akan bercakap tentang pautan dinamik.
(5) Permulaan
2. Mekanisme perwakilan ibu bapa
Mulakan pembolehubah statik kelas kepada nilai yang ditentukan dan laksanakan blok kod statik .
Pemuat kelas aplikasi AppClassLoader memuatkan kod sumber mekanisme delegasi induk bagi kelas Kaedah loadClass AppClassLoader akhirnya akan memanggil kaedah loadClass kelas induknya ClassLoader Logik umum kaedah ini adalah seperti berikut:
Pertama, Periksa sama ada kelas dengan nama yang dinyatakan telah dimuatkan Jika ia telah dimuatkan, tidak perlu memuatkannya semula dan kembali terus.
Jika kelas ini belum dimuatkan, kemudian semak sama ada terdapat pemuat induk, jika terdapat pemuat induk, ia akan dimuatkan oleh pemuat induk (iaitu, panggil parent.loadClass(name, false );). Atau hubungi pemuat kelas bootstrap untuk memuatkan.
Jika pemuat induk mahupun pemuat kelas bootstrap tidak menemui kelas yang ditentukan, maka kaedah findClass pemuat kelas semasa dipanggil untuk melengkapkan pemuatan kelas.
3. Mekanisme perwakilan tanggungjawab penuh
"Tanggungjawab penuh" bermaksud apabila ClassLoder memuatkan kelas, melainkan ClassLoder lain digunakan secara eksplisit, kelas bergantung dan dirujuk kelas juga dimuatkan oleh ClassLoder ini.
Atas ialah kandungan terperinci Apakah pelbagai mekanisme JVM dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!