1.0 KiB
1.0 KiB
方法区:类
堆:对象
装载:
class文件->字节流->类加载器(代码模块) 自定义类加载器 字节码增强 java agent
将一个字节流代表的静态存储结构转化成方法区运行时数据结构
在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区 的数据访问入口
链接
验证
文件格式验证,class文件,jvm版本
元数据验证,对于java语法的验证
字节码验证,数据流和控制流验证,运行时检查,栈数据类型和操作码
符号引用验证,将符号引用转为直接引用.(链接)
准备
常量赋值
解析
从运行时常量池中的符号引用动态确定具体值的过程(符号引用->直接引用).
对解析的结果进行缓存.
初始化
执行类构造器方法的过程.
声明类变量为定制的初始化值
使用静态代码块为类变量赋值
对象几种状态
- 创建阶段
- 应用阶段
- 不可见阶段
- 不可达阶段
- 收集阶段
- 终结阶段
- 空间重分配阶段