读书笔记:《深入理解Java虚拟机》(9)
虚拟机类加载机制
代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一 大步。
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。
与那些在编译时需要进行连接的语言不同,
在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,
这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,
但是却为Java应用提供了极高的扩展性和灵活性,
Java天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。
类的生命周期
一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)七个阶段,其中验证、准备、解析三个部分统称为连接(Linking)。