JVM类加载流程
2022-10-26 11:02:12 12 举报
JVM类加载流程是Java虚拟机将字节码文件加载到内存中,生成对应的Class对象的过程。主要包括以下步骤:首先,通过类的全限定名获取定义此类的二进制字节流;然后,将这个字节流转化为方法区的运行时数据结构;接着,在堆中创建一个代表这个类的java.lang.Class对象,作为方法区这个类的数据访问入口;最后,如果有父类,则递归加载父类。这个过程可能涉及到验证、准备、解析、初始化等阶段。
作者其他创作
大纲/内容
对象是否会逃逸?
解析
就是执行clinit()方法的过程
Old
合并静态变量赋值以及静态代码块中的代码
大对象?
确保Class文件的字节流中包含的信息是否符合Java虚拟机约束要求
栈
类或接口解析字段解析方法解析接口方法解析
JVM 关于对象分配在堆、栈、TLAB的理解
S1
初始化
年龄是否大于15?CMS>6?
加载
常量池中的符号引用替换为直接引用
Eden区
类变量分配内存、赋值
N
准备
通过全限定名获取二进制字节流将这个字节流所代表的静态储存结构转化为方法区运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象
对象使用
Y
TLAB
GC
final修饰的变量直接赋值,其余的变量赋初始化值
END
S2
POP
验证
文件格式验证元数据验证字节码验证符号引用验证
0 条评论
下一页