运行时内存结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LDgcZsQx-1620825827005)(C:\Users\liss\AppData\Roaming\Typora\typora-user-images\1597471767904.png)]
运行时数据区在java虚拟机规范中的定义与HotPot的实现有些不同,可看下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y95ZwFsS-1620825827006)(C:\Users\liss\AppData\Roaming\Typora\typora-user-images\1597471919682.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sW3zGwMO-1620825827008)(C:\Users\liss\AppData\Roaming\Typora\typora-user-images\1597471960405.png)]
程序计数器:
定义:程序计数器(Program Conputer Register
)这是一块较小的内存空间,可以看做是当前线程所执行的 字节码的行号指示器,在虚拟机的概念模型里,字节码解释器的工作就是通过改变这个计数器的值来选 取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个 计数器来完成。
特性:
线程私有:Java虚拟机支持多线程,是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任一确 定的时刻,一个处理器只会执行一条线程中的指令,因此为了线程切换后能恢复到正确的执行 位置,每条线程都需要一个独立的程序计数器。因此线程启动时,JVM<