JVM:运行时数据区概览与程序计数器
Posted liu++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM:运行时数据区概览与程序计数器相关的知识,希望对你有一定的参考价值。
线程私有的是程序计数器、本地方法栈、虚拟机栈,线程共享的是堆和方法区。
而垃圾回收95%集中在堆5%在方法区。
各区作用
堆:存放对象实例。
方法区:存放加载的类信息,包括类型信息、常量、静态变量、代码缓存等。
本地方法栈:使用本地方法。
虚拟机栈:线程私有生命周期与线程同步
程序计数器:程序历程控制器。
程序计数器/寄存器(PCR)
pc寄存器用来存储下一条指令的地址。
如果是本地方法PCR无法记录。
PCR没有GC也没有OOM。
使用PCR存字节码指令地址有什么用?
因为CPU在不断切换线程,切回来要知道运行到哪了。
PCR为什么要线程私有?
为了记录各个线程当前指令下一个指令的地址。
参考(学习)
以上是关于JVM:运行时数据区概览与程序计数器的主要内容,如果未能解决你的问题,请参考以下文章
12.JDK1.8 JVM运行时数据区域概览各区域介绍程序计数器Java虚拟机栈本地方法栈堆堆空间内存分配(默认情况下)字符串常量池元数据区jvm参数配置