博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[java]OutOfMemoryError 原因及解决办法
阅读量:5970 次
发布时间:2019-06-19

本文共 479 字,大约阅读时间需要 1 分钟。

导致OutOfMemoryError异常的常见原因有以下几种:

  1. 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
  2. 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
  3. 代码中存在死循环或循环产生过多重复的对象实体;
  4. 使用的第三方软件中的BUG;
  5. 启动参数内存值设定的过小;

 

Java代码导致OutOfMemoryError错误的解决:

需要重点排查以下几点:

  1. 检查代码中是否有死循环或递归调用。
  2. 检查是否有大循环重复产生新对象实体。
  3. 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
  4. 检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

转载于:https://www.cnblogs.com/ryq2014/p/5752891.html

你可能感兴趣的文章
WINDOWS 几种坐标系
查看>>
大豆和黄豆芽还能吃吗?
查看>>
Yii2中如何将Jquery放在head中的方法
查看>>
解析solidity的event log
查看>>
[转发] 【GRT安智网】HTC安致手机ROM国内首个中文定制教程goapk首发[最新厨房V0......
查看>>
try catch 之后是否会继续执行
查看>>
vim 配置svn
查看>>
《重构-改善既有代码设计》读书笔记-重构篇
查看>>
测试第三方代码
查看>>
RabbitMQ接触(二)
查看>>
Springboot-添加对jsp支持
查看>>
数据库设计中的14个技巧
查看>>
替换k个字符后最长重复子串
查看>>
讲解sed用法入门帖子
查看>>
Java异常学习心得
查看>>
Scala学习之类和属性篇(一):定义类的主构造方法
查看>>
使用阿里云CentOS安装LAMP时,安装PHP扩展需要注意的事情
查看>>
Python 浮点数运算
查看>>
iOS官方Sample大全
查看>>
MongoDB replSet
查看>>