java.lang.OutOfMemoryError问题的解决
一、复习概念
1、java.lang.OutOfMemoryError问题
(1)、java.lang.OutOfMemoryError: Java heap space异常
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
(2)、java.lang.OutOfMemoryError: PermGen space异常
(3)、 java.lang.OutOfMemoryError异常
2、内存泄露和内存溢出
内存泄露:程序在申请内存后,无法自己释放已申请的内存空间,始终占用着内存,即被分配的对象可达但无用。
内存溢出::程序在申请内存时,没有足够的大内存供申请者使用。此时就会报错OutOfMemoryError,即所谓的内存溢出。
二、我的问题
报错信息:java.lang.OutOfMemoryError: Java heap space ,意思是head Space 溢出,堆空间溢出。
三、我是怎么解决的
出现堆内存溢出一般有两种情况。 一个原因是内存真的不够,另一个原因是程序中有死循环。
1、检查代码是否出现问题
检查代码中是否出现死循环等问题,暂未发现问题。
2、设置参数,调大堆空间的大小
首先介绍两个JVM 启动参数:
(1). -Xms20M:设置JVM启动内存的最小值为20M。
(2). -Xmx20M:设置JVM启动内存的最大值为20M。
将-Xms -Xmx设置为一样可以避免JVM内存自动扩展。比如这里的-Xms20M和 -Xmx20M