美文网首页
JVM学习-1:类加载过程

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