![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fb275cec6f88c790bd62c8daae7c290a.jpeg)
JVM运行数据区
Java在执行Java程序的过程中会把所管理的内存划分为为若干个不同的数据区域,如下图
JDK1.8之前方法区由永久代实现(永久代在堆中)
JDK1.8方法区由元空间实现(元空间在本地内存)
JDK1.8之前堆内存被分为新生代,老年代,永久代
JDK1.8之后堆内存被分为新生代,老年代,默认比例为1:2,新生代又被分为1个Eden区+2个Survivor区(S0区,S1区),其中Eden区,S0区,S1区的默认比例为8:1:1
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a8202c53be828eddb18b343ca6a64ab5.png)
堆和方法区是所有线程共享的数据区
虚拟机栈,本地方法栈,程序计数器是线程隔离的数据区
判断对象是否已死
- 引