Java内存区域划分
前言
为什么要对内存进行区域划分?
我们知道, 在厨房做菜的时候,厨师需要用到东西都是放在固定区域的
比如,厨具放在厨具区,调料放在调料区,菜料放在菜品区
这样在做菜的时候,厨师就能够很容易的找到要用到的厨具,从而将专注力都汇聚在炒菜本身,而不是找工具
![](https://pic1.zhimg.com/80/v2-f3e0bff8c4e8dde9d9359a159b8521d4_720w.webp)
JVM划分内存区域的道理也是相同
运行程序就好比是在做菜,运行程序所需要的数据,就是做菜时需要用到的原料
jvm大厨为了能够在运行程序的时候,能够比较轻松的拿到和存放和清理数据,所以将运行时数据区域进行了详细的划分.
这些区域有各自的用途,以及创建和销毁的时间
有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。
接下来我们开始详细介绍这五个内存区域,根据《Java虚拟机规范》的规定,虚拟机所管理的内存如图所示。
![](https://pic4.zhimg.com/80/v2-3110234ec174cd59d69618e4baa28093_720w.webp)