一、复习概念

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐