JVM 虚拟机相关图形
2022-04-23 18:35:31 0 举报
JVM 虚拟机相关图形,类加载、 线程切换、 引用计数器、 可达性分析
作者其他创作
大纲/内容
Java运行原理
线程A
分配内存空间
操作数栈
MetaspaceSpace
OBJ3
Java编译器
ToS1
执行<init>方法
动态链接
ref
表示当前线程释放CPU资源
父委派模型
线程B
加载
GC ROOT 集合
Eden Space
Object A
objB
引用链
上述对象到GC ROOT对象存在引用不可回收
CPU时间片
3. 委派给父加载器
应用类加载器Application ClassLoader
......
new ObjectB()
2. 委派给父加载器
FromS0
gc年龄+1
引用计数:1
GC ROOT 1
类装载器
OBJ2
B引用A
方法返回地址
Old Generation
Java类库
Java虚拟机
启动类加载器Bootstrap ClassLoader
OBJ 5/6/7虽然有关联,但是它们到GC ROOT不可达所以会被判断为可回收对象
.........
5. 加载失败,给下一级
引用计数器算法
main()栈帧
表示当前线程占用CPU资源
JVM heap内存划分1.8
引用计数器+1
类加载检查
引用计数循环依赖带来内存泄露问题
可达性算法
自定义类加载器User ClassLoader
GC ROOT N
OBJ6
对象的创建过程
Java解释器
扩展类加载器Extension ClassLoader
Java运行环境
附加信息
当gc年龄等于15的时候对象移到Old区
线程切换
new TargetClass()
objA
test.class
恢复线程上下文
Survivor Space
Java字节码.class
Object B
局部变量表
Java源文件.java
new ObjectA()
OBJ5
OBJ7
4. 加载失败,给下一级
类加载器
OBJ1
保存寄存器和程序计数器等状态
堆内存
即时编译器
设置对象头
虚拟机栈
初始化“零值”
OBJ4
A引用B
Young Generation
0 条评论
回复 删除
下一页