![](https://img.haomeiwen.com/i3117070/8e3382763681e837.png)
![](https://img.haomeiwen.com/i3117070/16bd8e98eaded90e.png)
程序计数器
当前线程所执行的字节码的行号指示器
每个线程都有一个程序计数器,私有不共享
这个是唯一一个不会发生OOM的内存区域
Java虚拟机栈
局部变量表
局部变量槽
异常
StackOverFlowError
OutOfMemoryError
本地方法栈
与Java虚拟机栈作用类似
HotSpot虚拟机将Java虚拟机栈和本地方法栈合二为一了
Java堆
最大的一块内存区域,大家共享
存放对象实例
分区
新生代
老年代
永久代(后变成了元空间)
Eden空间
From Survivor空间
To Survivor空间
方法区
各个线程共享
最初由永久代实现,后修改为了元空间实现
运行时常量池
其他
直接内存
不属于虚拟机运行时数据区
但是这部分内存被频繁地使用
也可能导致OOM
网友评论