JVM,jvm,Java虚拟机知识相关图示
2021-10-26 10:57:59 155 举报
JVM图示整理(持续更新)
作者其他创作
大纲/内容
To
字节码校验器
类元信息
伊甸园(Eden)
注解抽象语法树
S0
System Class Loader
栈帧
启动类加载器
10、小结堆空间参数设置
3、机器语言、汇编、高级语言
2、Java代码执行流程
9、TLAB 对象分配过程
翻译字节码(解释执行)
1、class file存在于本地硬盘上,可以理解为设计师画在纸上的模板,最终这个模板在执行的时候要加载到JVM当中,根据这个文件实例化出N个一模一样的实例。2、class file 加载到JVM中,被称为DNA元数据模板,放在方法区3、在.class文件->JVM->最终称为元数据模板,此过程就要一个运输工具,类加载器扮演这个角色。
程序计数器
高级语言
局部变量表
加载
中间代码生成器
方法区
1、Java虚拟机详图
car 1
JDK8称为元空间
Extension Class Loader
加载并初始化
本地方法接口
7、jstat用法及说明:
Car.class
垃圾回收
Java虚拟机运行时数据区
.class文件
Bootstrap Class Loader
栈帧详图
12、栈、堆、方法区的交互关系
这里的四者是是包含关系,不是上层下层,也不是子父类的继承关系
getClassLoader
线程A程序计数器
本地方法库
JVM
堆内存
待补充
S1
CPU
语法\\抽象语法树
Car Class
老年代
Java源代码(XXXX.java)
验证
线程B
线程B程序计数器
Java虚拟机
getClass()
语义分析
4、类加载器ClassLoader角色
操作系统
From
User Defined Class Loader
元数据区
执行引擎
本地方法栈
老年区使用情况:OC是总大小OU是使用大小
语法分析
方法返回地址
1、Java虚拟机(JVM)整体结构
机器指令
系统类加载器
常量池
6、JDK7堆空间内存结构
JIT编译器(编译执行)
解析
汇编语言
car 3
扩展类加载器
Eden
解释器
字节码(xxx.class)
操作数栈
准备
Optional
方法元信息
car实例
Java 编译器
附加信息
动态链接
初始化
字节码生成器
代码优化器
年轻代
线程A
永久代
1、jps查看进程号;2、jstat -gc 进程号
5、类加载器分类
Eden区使用情况:EC是总大小EU是使用大小
11、从线程共享与否的角度来看,运行时数据区结构图
链接
词法分析
堆空间
实例化
分析器
Java虚拟机栈
目标代码生成器
ClassLoader
即时编译器
car 2
类加载子系统
类加载器
新生代
8、新生代对象分配与回收过程
Heap堆区
0 条评论
下一页