类加载
2020-11-26 23:51:51 0 举报
AI智能生成
类加载过程
作者其他创作
大纲/内容
类加载
加载
普通类加载
1.通过一个类的全限定名来获取定义此类的二进制流
.....
2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构
数组类加载
验证
1.文件格式验证
1.是否以魔数0xCAFEBABE开头
2.主次版本号是否在当前虚拟机处理范围内
3.常量池中是否有不被支持的常量类型
4.指向常量的各种索引值中是否有指向不存在的常量或者不符合类型的常量
5.CONSTANT_Utf8_info型的常量中是否有不符合utf-8编码的数据
6..Class 文件的各个部分及文件本身是否有被删除的或者被附加的其他信息
元数据验证
1.类是否有除了Object之外的父类
2.父类是否继承了不允许被继承的类
字节码验证
1.操作数栈的数据类型与指令代码序列都能配合工作
2.任何跳转指令都不会跳到方法体以外的字节码指令上
3.方法体中的类型转换总是有效的
符号引用验证
1.符号引用中通过字符串描述的全限定名是否可以找到对应的类
2.指定类中是否存在符合方法的字段描述符及简单名称所描述的方法和字段
准备
解析
Java虚拟机将常量池内的符号引用替换为直接引用过程
1.类或接口的解析
2.字段解析
3.方法解析
4.接口方法解析
5.方法类型解析
6.方法句柄解析
7.调用点限定符解析
初始化
类初始化
主动引用
被动引用
接口初始化
使用
卸载
0 条评论
下一页