JVM
2021-07-09 11:32:34 25 举报
JVM内存结构,让JVM学习更轻松 点个赞支持一下呗
作者其他创作
大纲/内容
JIT编译器
。。。
Parallel Old GC
实例池
实例数据Instance Data
Java栈本地变量表
方法信息
操作栈
垃圾收集器
User Defiend Class Loader
链接阶段
运行时常量池
句柄池
解释器
字面量
Java源码:xxx.java
元空间用本地内存
符号表
类型信息
类加载器子系统
新生代
CMS GC
方法区
本地方法库
int
加载阶段
本地方法栈
JDK8
StringTable
符号引用
Extension Class Loader
JIT代码缓存
short
执行引擎
动态链接
操作系统
并发,低延迟标记-清除算法JDK1.4发布JDK14删除
语法分析器
语法树/抽象语法树
jdk8废弃,9移除
堆
Order.class的数据结构
对象类型数据
初始化阶段
生成
老年代
Order.class
reference
引导类加载器
注解抽象语法树
8
Java栈
字节码生成器
本地方法接口
JDK7
永久代
程序计数器
→后备方案
静态变量
方法返回地址
字节码文件
对象的直接指针访问
S0
TLAB
Eden
类加载器
到对象实例数据的指针
栈帧
扩展类加载器
占1%
语义分析器
局部变量表
Java虚拟机
对象结构
Order.class的Class对象
非必需,仅起占位符的作用
域信息
ParNew GC
对象的句柄访问
串行,低延迟复制算法JDK1.3发布
JIT编译器(编译执行)
对象实例数据
到对象类型数据的指针
对齐填充Padding
1
S1
slot
G1 GC
运行时数据区
long
double
词法分析器
JVM结构
是对象真正存储的有效信息,包括代码中定义的字段规则:相同宽度的字段总是被分配在一起、父类中定义的变量会出现在子类前、CompactFields为true,子类的窄变量可能插入到父类变量的空隙
字节码校验器
JDK6
解析
2
对象头Header
类加载子系统Class loader
串行,低延迟标记-压缩算法
jdk14废弃
指向类元数据InstanceKlass,确定该对象所属类型
并行,高吞吐量标记-压缩算法JDK1.6出现
Parallel Scavenge GC
一些附加信息
方法区是概念,永久代是实现
翻译字节码(解释执行)
Java堆
并行,高吞吐量复制算法JDK1.4发布JDK1.6后成为默认GC
运行时元数据Mark Word
System Class Loader
JVM
准备
Token流
Java编译器
字节码文件:xxx.class
Java代码执行流程
Bootstrap Class Loader
并发、并行,低延迟标记-压缩、赋值算法JDK1.7可用JDK9成为默认GC
验证
哈希值GC分代年龄锁状态标志线程持有的锁偏向线程ID偏向时间戳
并行,低延迟复制算法
Serial GC
Serial Old GC
类型指针
系统类加载器
0 条评论
下一页