200本编程相关电子书,微信公众号关注程序员王小武 ,回复“电子书”进行获取。 |
- 他是一个类诞生和成长甚至死亡的地方
- 伊甸园区:所有的对象都是从伊甸园区new出来的
- 幸存区(0,1)
老年区
永久区
这个区域是常驻内存,存放一些JDK自身携带的Class对象,接口(interface)元数据,存储的是Java运行时的一些环境或者类信息,这个区域不存在垃圾回收,关闭虚拟机会释放这个区域内存
- jdk1.6之前:永久代,常量池在方法区
- jdk1.7:永久代,慢慢退化,‘去永久代’,常量池在堆中
- jdk1.8之后:无永久代,常量池在元空间
OOM故障
在一个项目中,突然出现了OOM故障,那么应该如何排除,研究为什么出错
- 最好更看到第几行代码出错:内存快照分析工具,MAT,Jprofiler
- Dubug,一行行分析代码
MAT,Jprofiler的作用:
- 分析Dump内存文件,快速定位内存泄漏;
- 获得堆中的数据
- 获得大的对象
- …