## `JVM`的内存区域是怎么划分的

我们通过`JVM`的官网虚拟机规范定义可知，`JVM`的运行时内存区域主要是由Java堆、虚拟机栈、本地方法栈、方法区以及程序计数器和运行时常量池组成的。其中，堆、方法区与运行时常量池是线程共享的区域。

![image-20231223104035964](https://cs-wlei224.obs.cn-south-1.myhuaweicloud.com/blog-imgs/202312231040827.png)

`虚拟机栈`：用于存储Java中的局部变量。生命周期：方法调用-->创建栈帧-->存储局部变量、操作数栈、动态链接、方法出口等-->弹出栈帧-->结束

`本地方法栈`：特殊的栈。类似于Java虚拟机栈，但是支持本地方法的执行

`程序计数器`：

`Java堆`：

`方法区`：

`运行时常量池`：