JVM学习-1:类加载过程
作者:
咪雅先森 | 来源:发表于
2019-06-24 14:46 被阅读0次
1.第一阶段:加载
取得二制流,也可以从网络中取得。
转为方法区数据结构
在java堆中生成对应的 java.lang.Class 对象
2.链接-->验证
目的:保证 Class 流的格式的正确
1.文件格式:
- 是否以0xCAFEBASE 开头 // 咖啡base
- 版本号是否合理 // reapal-api 中遇到过这个问题
2.元数据
3.字节码验证
4.符号引用验证
3.链接-->准备
分配内存,并为类设置初始化值(方法区中)
静态class字节文件中写了 public static int v = 100;
在准备阶段中,v先置一个初始修值 0
在初始化的<clinit> 中才会被设置为 100
如是是 static final 类型的,在准备阶段就会被赋上 100。
4.链接-->解析
符号引用(字符串) 替换为 直接引用。
直接引用:指针 或 地址偏移量,引用对象一定在内存
符号引用:就是一个字符串,字符串引用对象不一定被加载。
5.装载验证流程--初始化
static 变量
本文标题:JVM学习-1:类加载过程
本文链接:https://www.haomeiwen.com/subject/ntfoqctx.html
网友评论