Java类的加载过程包括以下步骤:
-
加载(Loading):将类的字节码文件加载到内存中。这个阶段由类加载器完成,类加载器将字节码文件从磁盘或网络读取到内存,并创建一个对应的Class对象。
-
验证(Verification):验证字节码文件的合法性。这个阶段确保字节码文件符合Java虚拟机的要求,并且不会危害到虚拟机自身的安全。
-
准备(Preparation):为类的静态变量分配内存空间并初始化默认值。在这个阶段,虚拟机为类的静态变量分配内存,并设置默认初始值。
-
解析(Resolution):将符号引用转换为直接引用。在Java程序中使用到的类、方法和字段都是通过符号引用来表示的,解析阶段将这些符号引用转换为对应的直接引用,使得程序可以直接访问这些类、方法和字段。
-
初始化(Initialization):执行类的初始化代码。在这个阶段,虚拟机会执行类的静态初始化语句,包括执行静态变量的赋值语句和静态代码块。
-
使用(Using):使用加载的类。在类加载完成后,就可以通过创建实例、调用方法或访问字段来使用这个类。
-
卸载(Unloading):卸载不再使用的类。当类不再被引用,且没有活动的实例时,虚拟机可以卸载这个类,释放内存空间。
需要注意的是,Java类的加载过程是按需进行的,即在需要使用某个类时才会加载它。