java运行时数据区
2018-05-18 10:01:53 0 举报
jvm运行时数据区
作者其他创作
大纲/内容
虚拟机栈
本地方法栈
运行时常量池
程序计数器
。。。
虚拟机栈为执行java方法服务,本地方法栈则为虚拟机用到的native方法(底层的c/c++方法)服务,hotspot已经将两者合二为一
栈帧(方法1)
存放对象实例,所有的对象实例和数组都要在堆上分配。heap是垃圾回收器管理的主要区域。
线程A
heap和方法区是多个线程共享的存储区
方法1在运行时常量池中的引用
jvm解释执行引擎被称为“基于栈的执行引擎”,操作数栈指的就是这个栈。执行逻辑的操作栈
方法区的一部分,存放编译期生成的各种字面量和符号引用
局部变量表
java堆(Heap)
动态链接
方法出口
方法区
存放了基本数据类型,对象引用,引用指针等。所需内存空间已在编译期确定,运行期间不会改变表大小。对象引用直接指向堆中对象地址。
方法执行完毕后的返回地址
当前线程所执行字节码的行号指示器,为了切换线程时,线程能恢复正确的执行位置
线程B
操作数栈
栈帧(方法2)
存储已经被虚拟机加载的类信息,常量(final),静态变量(static),即时编译器编译后的代码JIT(动态代理)等数据。可以理解为“永久代”。可以抛内存溢出。1.7+将常量切换到heap区。jkd1.8将永久带(方法区)修改为meta space(元空间)
JVM运行时数据区
收藏
0 条评论
下一页