4.JVM的类加载机制
类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking),这7个阶段的发生顺序如图:

加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始, 这是为了支持Java语言的运行时绑定特性(也称为动态绑定或晚期绑定)。
4.1类的加载时机
思考:JVM在什么情况下会加载一个类呢?
通过以上的类加载流程,我们可以得知第一个环节就是加载一个类,因此当我们在IDEA中或直接运行某一个类的时候(比如First.java),其实是启动了JVM进程,然后JVM会通过类加载器将这个类的字节码(First.class)加载到内存,然后调用main方法开始执行。如果main方法中的代码是:
public<

本文详细介绍了JVM的类加载机制,包括加载、验证、准备、解析、初始化、使用和卸载七个阶段。重点讨论了类的加载时机,如在IDEA中运行或调用未加载的类时,JVM如何加载类的字节码到内存,并解析其在方法区的运行时数据结构。同时,解释了加载阶段的三个主要任务:获取二进制字节流、转换为方法区数据结构及创建Class对象作为访问入口。
最低0.47元/天 解锁文章
6624

被折叠的 条评论
为什么被折叠?



