永发信息网

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

答案:5  悬赏:30  手机版
解决时间 2021-04-04 01:53
java运行过程中OutOfMemoryError是什么原因
最佳答案
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,加大内存参数值,解决此问题。
全部回答
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,加大内存参数值,解决此问题。
字面意思 外部内存错误 是不是内存卡没插好
内存溢出,配置的服务器的内存小了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
59-1铜的密度是多少?
房屋楼顶前高后低风水格局怎样
性道具用着爽吗?
汽车转向时,电子助力和液压助力各自的特色是
谁知道无锡分期买车的,需要什么才能买车?
描写春天自创的五言诗压an韵
王者荣耀登录为什么微信登录说检测到我没有安
40ON和110OE的交点位于A.东半球,低纬度B.西
为什么每次心里难过就会呕吐心堵得慌
世达套筒12.5毫米系列啥意思
手和脚都没有斗,有什么说法吗
煮银煮冰糖要煮的久长合适
如何用ADO连接各种数据库的代码
英语等级证书有效期多长?
西安音乐学院好考吗?要不要提前半年去找老师
推荐资讯
类风湿吃什么水果好,类风湿患者适合吃哪些水
1.25乘负一又七分之一乘负三点二乘负八分之七
葫芦能送人吗,葫芦可以装水,或者装酒吗
黑界林绾
2015新途胜有胎压监测吗?
西米包粽子要泡多久,包粽子的米要泡多久
威海家家悦总店里有卖万宝路的吗?或者环翠楼
1x2+2x3+3x4+...49x50之和,要列式
广州万车达北京公司怎么样
为什么有些人越长大越单纯?再也不像从前那样
中国最牛的朝代是哪个,什么车牌最牛
终于不再是秘密是什么歌歌词
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?