JVM运行时数据区
2018-03-20 17:12:24 36 举报
JVM运行时数据区
作者其他创作
大纲/内容
。。。
j = 1
final--why?
虚拟机栈FILOXXS = 1000(栈深度)
数据、指令、控制(对应机器的3种流)
代码分解到各个区域
Method1
Method
基本不会重复的数据?内存小
实例(Class.NewInstance)及成员变量,final(>1.7)
出栈,异常
Xxx.class
JVM运行时数据区
1
操作数栈
java变量:常量(final)/静态变量(static)/成员变量/局部变量
native方法执行所需要的数据、指令、返回地址(System方法等,C实现)
比如运行时多态
0
因为CPU指令执行是可中断的,所以也会有线程的切换
Heap
Method2先执行完出栈后执行method1
存储当前线程运行方法所需要的数据、指令、返回地址
程序计数器
局部变量表
i = 0
虚拟机栈
可重复的数据?内存大
存储8大数据类型以及对象的引用(句柄)
本地方法栈
动态链接
load
栈帧
Method2
栈帧超过XXS时,就会StackOverflow
指令(线程独享)
指向当前线程正在执行的字节码指令的地址(行号)
this
数据(线程共享)
出口
0 条评论
下一页