Java教程

JAVA内存区域(运行时数据区)

本文主要是介绍JAVA内存区域(运行时数据区),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。

1、程序计数器

程序计数器,是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。

java文件编译成class字节码文件后,会生成一系列操作指令,每个操作指令都会有相应的指令地址(偏移地址),当字节码解释器器工作时,程序计数器会保存下一条指令要执行的指令的地址, 之后,执行引擎会从 程序计数器中,获得指令的地址,拿到操作指令,对其进行执行。

多线程执行时,若A线程挂起,B线程执行,B线程挂起,A线程继续执行,此时就需要通过A线程的程序计数器来恢复A线程指令的执行位置。为了保证线程切换执行后可以正确执行指令,因此每个线程都有一个独立的程序计数器,也就是说程序计数器是线程私有的。

参考:

《深入理解Java虚拟机-JVM高级特性与最佳实践》周志明

https://www.136.la/shida/show-131489.html

程序计数器(关于java虚拟机内存的那些事)_young-youth的博客-CSDN博客_为什么程序计数器不会内存溢出

上述是本人学习Java虚拟机过程中整理的内容,若有不正之处还望指教。若有用到某位大神的文章内容或资料,还请留言,本小菜会备注上出处。

这篇关于JAVA内存区域(运行时数据区)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!