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