导致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

[java]OutOfMemoryError 原因及解决办法相关推荐

  1. java 内存 溢出_java内存溢出的几种原因和解决办法是什么?

    java内存溢出的几种原因和解决办法是什么? java内存溢出的几种原因和解决办法是: 第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看 ...

  2. com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法

    转自:https://blog.csdn.net/shinchan_/article/details/37818927 com/opensymphony/xwork2/spring/SpringObj ...

  3. 【原创】-eclipse下连Hadoop报java.lang.OutOfMemoryError: Java heap space的解决办法

    eclipse下java.lang.OutOfMemoryError: Java heap space的解决办法: 一.在eclipse下远程连接Hadoop出现如下问题: 14/03/28 22:3 ...

  4. java提示null_java 出现NullPointerException的原因及解决办法

    java 出现NullPointerException的原因及解决办法 日常开发过程中,最常见的异常莫过于NullPointerException,之前的时候,只是知道去找到报错的位置,然后去解决它, ...

  5. java defunct_java defunct产生的原因和解决办法

    java defunct产生的原因和解决办法: 在很多时候,我们启动JAVA进程后,如果退出这个JAVA进程,在系统进程中仍然可以看到这个进程. 这种情况一般出现在UNIX/linux系统,对于WIN ...

  6. JVM出现OOM的八种原因及解决办法

    本文源自转载:JVM出现OOM的八种原因及解决办法 目录 一.堆溢出 1.1 原因 1.2解决方法 二.永久代/元空间溢出 2.1 原因 2.2 解决方法 三.GC overhead limit ex ...

  7. mysql保存中文乱码的原因和解决办法

    当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心.   也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似 ...

  8. Frameset导致Cookies和Session丢失的原因及解决办法

    参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/details/1742775  2 使用fr ...

  9. 内存泄漏的原因及解决办法_探索内存碎片化 - 第288篇

    相关历史文章(阅读本文之前,您可能需要先看下之前的系列 ) 色谈Java序列化:女孩子慎入 - 第280篇 烦不烦,别再问我时间复杂度了:这次不色,女孩子进来吧 - 第281篇 双向链表,比西天还远? ...

最新文章

  1. 科大讯飞董事长:AI创业,做平台已没有机会
  2. 【SharePoint】设置站点通讯组
  3. mfc指示灯报警显示_消防百科 | 火灾显示盘的基本功能有哪些?
  4. 烂泥:高负载均衡学习haproxy之关键词介绍
  5. 强制关闭虚拟机后问题+解决
  6. java cpu 占用高问题定位
  7. php mysql怎么实现,使用php与mysql怎么实现一个无限级分类
  8. 向量表示,投影,协方差矩阵,PCA
  9. 文本生成系列之transformer结构扩展(三)
  10. unity 小tip
  11. grasshopper for rhino 6下载_漫谈算法设计与脚本语言(grasshopper, python)
  12. Openlayers layer 切换底图
  13. c语言读取tdx日线文件,***EXCEL读取通达信股票日线数据***改为读取通达信股票5分钟数据...
  14. phpcms v9 wap手机门户分页(显示首页末页)
  15. 如何管理时间:重要紧急四象限的思考
  16. .net中获取MD5码
  17. ftp连接21端口出现的问题的解决方案
  18. Creator星球教程文章分类导航
  19. 读书笔记-可靠性工程师前言
  20. Matlab课后笔记之霍夫变换(Hough Transform)

热门文章

  1. Linux服务器信息检测Shell脚本
  2. Codeforces Round #278 (Div. 2)
  3. nyoj 715 Adjacent Bit Counts
  4. cacti监控(3)配置cacti
  5. Android学习笔记(二三): 多页显示-Flipper的使用
  6. Zend Studio 安装 PyDev 插件后报错
  7. Xamarin SQLite教程Xamarin.iOS项目添加引用
  8. Xamarin XAML语言教程基本页面ContentPage占用面积
  9. Xamarin.Forms项目无法添加服务引用
  10. centos得mysql安装教程_Centos下Mysql安装图文教程_MySQL