project/jvm/jvm调优之深入理解jvm底层原理1.18.md

1.0 KiB

方法区:类

堆:对象

装载:

class文件->字节流->类加载器(代码模块) 自定义类加载器 字节码增强 java agent

将一个字节流代表的静态存储结构转化成方法区运行时数据结构

在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区 的数据访问入口

链接

验证

文件格式验证,class文件,jvm版本

元数据验证,对于java语法的验证

字节码验证,数据流和控制流验证,运行时检查,栈数据类型和操作码

符号引用验证,将符号引用转为直接引用.(链接)

准备

常量赋值

解析

从运行时常量池中的符号引用动态确定具体值的过程(符号引用->直接引用).

对解析的结果进行缓存.

初始化

执行类构造器方法的过程.

声明类变量为定制的初始化值

使用静态代码块为类变量赋值

对象几种状态

  1. 创建阶段
  2. 应用阶段
  3. 不可见阶段
  4. 不可达阶段
  5. 收集阶段
  6. 终结阶段
  7. 空间重分配阶段