1. 类的加载过程
类的加载过程又分为三个步骤:
过程1:类的装载(Loading)
将类的class文件读入内存,并为之创建一个java.lang.Class的实例对象,此过程由类加载器(负责类的加载,对应一个Class实例)完成。
过程2:链接(Linking)
- 验证(Verify):确保加载的类的信息符合JVM规范,例如:每一个class文件都以cafebabe开头,没有安全方面的问题。
- 准备(Prepare):正式为类中的(static)静态变量分配内存,并设置默认初始化值的阶段。这些内存都在方法区中进行分配。
- 解析(Resolve):虚拟机常量池内得符号引用(常量名)替换为直接引用(地址)的过程。
过程3:初始化(initialization)
执行类构造器方法的过程。执行所有类中(static)静态变量和(static)静态代码块中的语句的赋值动作,这些操作都在方法中进行。
因为类的加载过程中还没有对象的存在,因而赋值操作也只能是对静态变量进行。