JVM类加载过程

JVM类加载过程

 

1、加载
①、通过类的全限定名,加载该类对应的二进制字节流(类加载器)
②、将字节流多代表的静态存储结构转化为方法区的运行时数据结构
③、在内存中生成一个代表这个类的.class对象(方法区)
2、验证
①、文件格式验证:验证类文件的魔术版本号常量是否符合当前虚拟机支持的范围
②、元数据验证:验证类的语义信息,是否符合Java语言的规范
③、字节码验证:验证程序语义是否合法,符合规范
④、符号引用验证:虚拟机在将符号引用转化为直接引用,验证符号用限定名代表的类是否能够以找到
3、准备
准备阶段只是给static成员变量赋默认值,而普通成员变量不会赋默认值, 因为普通成员变量属于对象的;
只有在new对象的阶段,虚拟机才为new出来的对象申请内存, 然后给普通成员变量赋默认值,接着赋初始化值
4、解析
解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。 解析动作主要针对类或接口、字段、类方法、 接口方法、方法类型、方法句柄和调用点限定符7类符号引用进行。
5、初始化
初始化阶段是执行类构造器()方法的过程。

6、使用

7、卸载

 

 
posted @ 2021-05-24 22:44  猫咪什么时候才能回家  阅读(63)  评论(0)    收藏  举报