Mekanisme pemuatan kelas merangkumi tiga langkah: pemuatan, pemautan dan pemula. Memuatkan: Baca data perduaan fail kelas ke dalam memori dan cipta objek perihalan kod bait. Memautkan: Mengesahkan, menyediakan dan menghuraikan objek perihalan bytecode dan mengaitkannya dengan kelas lain. Permulaan: Jalankan program pemula statik, tetapkan pembolehubah statik dan wujudkan perhubungan warisan. Apabila kelas tidak lagi dirujuk, JVM menjalankan analisis kebolehcapaian untuk menandakan kelas sebagai boleh dikitar semula, dan pemungut sampah menuntut semula memori kelas yang ditanda, tetapi pembolehubah statik kekal dalam ingatan.
Kata Pengantar
Memahami mekanisme pemuatan kelas Mesin Maya Java (JVM) adalah penting untuk menguasai pembangunan Java. Artikel ini akan melihat secara mendalam tentang cara JVM memuatkan, memaut dan memunggah kelas, dan menggambarkan mekanisme ini melalui contoh praktikal.
Proses pemuatan kelas
Proses pemuatan kelas merangkumi tiga langkah berikut:
Proses pemunggahan kelas
Apabila kelas tidak lagi dirujuk, JVM akan melakukan langkah berikut untuk memunggahnya:
Praktikal Case
sample Code:
public class MyClass { private static int staticVar = 10; private int instanceVar = 20; public static void main(String[] args) { MyClass obj = new MyClass(); System.out.println(staticVar); // 输出 10 System.out.println(obj.instanceVar); // 输出 20 } }
class Analisis memuatkan:
myclass
instantiated, fail kelasnya dimuatkan ke ingatan dan buat objek perihalan bytecode. MyClass
被实例化时,它的 class 文件被加载到内存,创建字节码描述对象。System
类。staticVar
被赋值为 10,类与其子类建立继承关系。类卸载分析:
当 obj
变量超出作用域并被垃圾回收后:
MyClass
对象被标记为可回收,因为 artık不再引用。MyClass
对象的内存空间。staticVar
System
. 🎜🎜🎜Permulaan: 🎜Pembolehubah statik staticVar
diberikan nilai 10 dan kelas mewujudkan hubungan warisan dengan subkelasnya. 🎜🎜🎜🎜Analisis pemunggahan kelas: 🎜🎜🎜Apabila pembolehubah obj
terkeluar dari skop dan sampah dikumpul: 🎜🎜🎜🎜ditanda sebagai boleh dikitar semula: 🎜My is class Ditandakan sebagai boleh dikitar semula kerana artık tidak lagi dirujuk. 🎜🎜🎜Pengumpulan sampah: 🎜Pengumpul sampah menuntut semula ruang memori objek <code>MyClass
. 🎜🎜🎜Pengekalan pembolehubah statik: 🎜 Walaupun kelas telah dipunggah, pembolehubah statik staticVar
masih kekal dalam ingatan kerana ia diselenggara oleh pemuat kelas. 🎜🎜Atas ialah kandungan terperinci Penjelasan mendalam tentang mekanisme pemuatan kelas JVM: daripada pemuatan hingga pemunggahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!