JVM运行时数据区与程序计算器
- 简介
线程共享数据区:⽅法区、堆
线程隔离数据区:虚拟机栈、本地⽅法栈、堆、程序计数器
-
图解
-
程序计算器
程序计数器是⼀块较⼩的内存空间,它可以看作是当前线程所执⾏的字节码的⾏号指示器
线程是⼀个独⽴的执⾏单元,是由CPU控制执⾏的
字节码解释器⼯作时就是通过改变这个计数器的值来选取下⼀条需要执⾏的字节码指令,分⽀、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成
- 作用
为了线程切换后能恢复到正确的执⾏位置,每条线程都需要有⼀个独⽴的程序计数器,各条线程之间计数器互不影响,独⽴存储,
我们称这类内存区域为“线程私有”的内存
- 特点
内存区域中唯⼀⼀ 个没有规定任何 OutOfMemoryError 情况的区域