1. 运行时数据区域
1.1 程序计数器 (Program Counter Register)
- 程序计数器(PC)是一块较小的内存空间,记录正在执行的字节码指令的地址(如果正在执行的是Native方法则为空)。
- 此内存区域是唯一一个在Java虚拟机规范中没有规定任何 OutOfMemoryError 情况的区域。
- 每个线程都需要一个独立的程序计数器,在线程私有的内存中存储。
1.2 Java 虚拟机栈 (Java Virtual Machine Stacks)
- 与程序计数器一样,Java虚拟机栈也是线程私有的,生命周期与线程相同。
- 每个 Java 方法在执行的同时会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接