JVM:运行时数据区概览与程序计数器

Posted liu++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM:运行时数据区概览与程序计数器相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

线程私有的是程序计数器、本地方法栈、虚拟机栈,线程共享的是堆和方法区。

而垃圾回收95%集中在堆5%在方法区。

各区作用

堆:存放对象实例。

方法区:存放加载的类信息,包括类型信息、常量、静态变量、代码缓存等。

本地方法栈:使用本地方法。

虚拟机栈:线程私有生命周期与线程同步

程序计数器:程序历程控制器。

程序计数器/寄存器(PCR)

pc寄存器用来存储下一条指令地址

如果是本地方法PCR无法记录。

PCR没有GC也没有OOM。

在这里插入图片描述

使用PCR存字节码指令地址有什么用?

因为CPU在不断切换线程,切回来要知道运行到哪了。

PCR为什么要线程私有?

为了记录各个线程当前指令下一个指令的地址。

参考(学习)

视频:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)

以上是关于JVM:运行时数据区概览与程序计数器的主要内容,如果未能解决你的问题,请参考以下文章

JVM虚拟机------运行时数据区----总体概览

12.JDK1.8 JVM运行时数据区域概览各区域介绍程序计数器Java虚拟机栈本地方法栈堆堆空间内存分配(默认情况下)字符串常量池元数据区jvm参数配置

Jvm内存区域与对象结构概览

Jvm内存区域与对象结构概览

JVM_03 运行时数据区1-[程序计数器+虚拟机栈+本地方法栈]

预警有点干,JVM运行时数据区(计数器虚拟机栈本地方法栈堆方法区)