java.lang.OutOfMemoryError问题的解决

本文探讨了java.lang.OutOfMemoryError:JavaheapSpace错误,详细解释了堆内存溢出的原因,并提供了检查代码和调整JVM参数的解决方案。通过设置-Xms和-Xmx参数来增大堆空间,以防止内存溢出。同时,区分了内存泄露和内存溢出的概念,帮助开发者更好地理解和解决这类问题。
摘要由CSDN通过智能技术生成

一、复习概念

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

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值