一、JVM内存区域

内存区域图
image.png
线程私有的:

  1. 虚拟机栈
  2. 本地方法栈
  3. 程序计数器

线程共享的:

方法区
直接内存(非运行时数据区的一部分)

程序计数器

  • 记录当前线程所执行的位置,便于线程切换之后能够知道上次执行到哪里了
  • 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。

⚠️ 注意 :程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。

虚拟机栈