类加载过程-《java高并发编程详解》第九章 重点记录
本章主要是讲列的加载过程,class文件是如何被JVM加载并且最后得以运行的。
类的加载过程一般分为三个大阶段,加载阶段、连接阶段、初始化阶段
----加载阶段:主要负责查找并且加载类的二进制数据文件(class文件)。
----连接阶段:连接阶段还可以分为验证、准备、解析阶段。
- 验证:确保类文件的正确性,class的版本,class文件的魔术因子是否正确
- 准备:为类的静态变量分配内存,并且为其初始化默认值
- 解析:类中的符号引用转换为直接引用
----初始化阶段:为类的静态变量赋予正确的初始值(代码编写给的值)
jvmjava虚拟机在我们执行java命令启动后,可能有很多的类,每个类不一定都会初始化。jvm对类的初始化使用了lazy方式的延迟机制,当一个类在首次使用的时候才会被初始化,在一个运行时包下一个类只会被初始化一次。运行时包和类的包有区别。