java堆溢出

Posted 西北野狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java堆溢出相关的知识,希望对你有一定的参考价值。

java堆是用来存储对象实例的;
只要不断创建对象,GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,当对象数量达到最大堆的容量限制的时候就会产生内存溢出异常。
异常对战信息为OutOfMemoryError,进一步提示:java heap space。

如何解决?
内存映射工具,eclipse中的Memory Analyzer来对Dump出来的堆转储快照进行分析。
1、内存泄露:通过工具查看泄露对想到Gc Root的引用链。
2、不存在内存泄露:内存中对象必须存活,检查虚拟机的堆参数(-Xmx 与 -Xms),与机器物理内存对比看是否还可以调大,从代码上检查是否存在某些对象生命周期过长,持有状态时间过长的情况,尝试减少程序运行期的内存消耗






以上是关于java堆溢出的主要内容,如果未能解决你的问题,请参考以下文章

实战Java虚拟机之中的一个“堆溢出处理”

Java JVM:内存溢出(栈溢出,堆溢出,持久代溢出以及 nable to create native thread)

Java堆内存又溢出了!教你一招必杀技

java堆溢出

java堆溢出

java内存溢出实战