一、程序计数器
1.简介
它是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
简单概括即:记住下一条JVM指令的执行地址
2.特点
- 线程私有
- 唯一不会内存溢出的区域
- 若正在执行的是Native 方法,则这个计数器值为空
二、虚拟机栈
1.定义
- 每个线程运行时所需要的内存成为虚拟机栈
- 每个栈由多个栈帧组成,对应着每次方法调用时所需要的内存
- 每个栈只有一个活动栈帧,对应着正在执行的那个方法