【Java问题大纲】Java heap space问题的出现以及解决

引入

想必大家日常开发中或者修复中,能遇到很多业务上和程序上BUG和难题。其实想内存溢出等这些问题作为一个开发者应该很容易找到问题所在并解决,我记录这个问题是用来水文的🤪,原因是因为公司需要记录点东西,刚好遇到了就拿出来水了一下。😍😍😍
在这里插入图片描述

问题: java.lang.OutOfMemoryError: Java heap space在这里插入图片描述

为什么出现这个问题:

  1. java虚拟机的堆内存设置不够,可以通过-Xms、-Xmx来调整
  2. 代码中创建了大量的对象,并且长时间不能被GC回收
  3. 程序有没有可能限入死循环
  4. 等…

以上列出的几个是最常遇到的,也有可能其他导致出现哦!

我是在什么情况下出现的:

我的业务场景是:第一次全量数据同步到另一个系统;单个系统所涉及到的数据量大概在100W左右,之前都是使用脚本同步的,这次因为换数据库了所以采用了程序的方式来同步数据到其他系统。所以在多线程查数据库数据时产生了这个问题,日常启动项目的大小设置的是-Xms512M -Xmx512M,因此问题就产生了!!!

怎么解决:

  1. 增加jvm的堆内存
  2. 优化代码,避免对象无法回收
  3. 仔细检查代码排除死循环可能

IDEA遇到了,可以设置IDEA的大小,设置Xms和Xmx就行啦!!
在这里插入图片描述
如果是在编码测试过程中遇到的,使用的是IDEA的话推荐大家安装VisualGC(实时垃圾回收监控)插件,插件地址

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值