java运行过程中OutOfMemoryError是什么原因

 我来答
卡华巴荒03
推荐于2018-04-27 · 超过49用户采纳过TA的回答
知道答主
回答量:80
采纳率:50%
帮助的人:51.3万
展开全部
1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
3.代码中存在死循环或循环产生过多重复的对象实体;
4.使用的第三方软件中的BUG;

  5.启动参数内存值设定的过小;
  2.Java代码导致错误的解决: 重点排查以下几点:
  1)检查代码中是否有死循环或递归调用。
  2)检查是否有大循环重复产生新对象实体。
  3)检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
  4 )检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
  查询数据时,一次查询过多的数据,后来调整了该部分的代码,每次只取出指定量的数据,成功的解决该问题。
  出现OutOfMemoryError,发现session的资源一直没有被释放产生的,最好通过session的invalidate()方法将session的资源释放。
  程序中出现死循环。 4.tomcat部署、运行出现OutOfMemoryError,加大内存参数值,解决此问题。
好程序员
2018-07-28 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
3.代码中存在死循环或循环产生过多重复的对象实体;
4.使用的第三方软件中的BUG;

  5.启动参数内存值设定的过小;
  2.Java代码导致错误的解决: 重点排查以下几点:
  1)检查代码中是否有死循环或递归调用。
  2)检查是否有大循环重复产生新对象实体。
  3)检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
  4 )检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
  查询数据时,一次查询过多的数据,后来调整了该部分的代码,每次只取出指定量的数据,成功的解决该问题。
  出现OutOfMemoryError,发现session的资源一直没有被释放产生的,最好通过session的invalidate()方法将session的资源释放。
  程序中出现死循环。 4.tomcat部署、运行出现OutOfMemoryError,加大内存参数值,解决此问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
如此匆忙
2016-03-04 · TA获得超过134个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:162万
展开全部
当JVM启动时,使用了-Xms 参数设置的对内存。当程序继续进行,创建更多对象,JVM开始扩大堆内存以容纳更多对象。JVM也会使用垃圾回收器来回收内存。当快达到-Xmx设置的最大堆内存时,如果没有更多的内存可被分配给新对象的话,JVM就会抛出java.lang.outofmemoryerror,你的程序就会当掉。在抛出OutOfMemoryError之前,JVM会尝试着用垃圾回收器来释放足够的空间,但是发现仍旧没有足够的空间时,就会抛出这个错误。为了解决这个问题,你需要清楚你的程序对象的信息,例如,你创建了哪些对象,哪些对象占用了多少空间等等。你可以使用profiler或者堆分析器来处理OutOfMemoryError错误。”java.lang.OutOfMemoryError:02Java02heap space”表示堆没有足够的空间了,不能继续扩大了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扰龙星剑Mu
2016-03-04 · TA获得超过1994个赞
知道小有建树答主
回答量:910
采纳率:50%
帮助的人:357万
展开全部
内存溢出,配置的服务器的内存小了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拉稀吐白沫622eda4
2016-03-04 · TA获得超过580个赞
知道小有建树答主
回答量:769
采纳率:35%
帮助的人:82.6万
展开全部
字面意思 外部内存错误 是不是内存卡没插好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式