注意💡

不同的JVM对于内存的划分方式和管理机制存在部分差异,后续针对HotSpot虚拟机进行介绍

技巧💡

虚拟机栈,管运行代码,存储栈帧等

,管存储数据。存储的是对象实例数据

元数据区,可能叫方法区更好点,管类相关的数据

程序计数器,管代码运行的位置

JVM内存区域

java在执行一个方法之前,首先要先通过类加载子系统,将类相关数据加载到元数据区,并进行类初始化。每个线程都会创建一个虚拟机栈,内部保存一个个栈帧,没调用1个java方法,就会生成一个栈帧,并进行压栈操作。调用结束后会进行出栈操作。实例化的对象,是存储在中的,这块也是垃圾回收的重点。
本地方法栈,主要用来存储本地方法的数据的。
[程序计数器],这样线程切换回来之后,就可以加载线上上下文,继续之前的执行。 直接内存,(堆外内存),非jvm内存,直接向操作系统申请