什么是内存溢出,怎么解决?

Awe 11月前 ⋅ 41 阅读

内存溢出(out of memory):简单地说内存溢出就是指程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存,于是就发生了内存溢出。

引起内存溢出的原因有很多种,常见的有以下几种:

  1. 内存中加载的数据量过于庞大,如一次从数据库取出过多数据;

  2. 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;

  3. 代码中存在死循环或循环产生过多重复的对象实体;

  4. 使用的第三方软件中的BUG;

  5. 启动参数内存值设定的过小。

内存溢出的解决方案:

  • 第一步,修改JVM启动参数,直接增加内存。

  • 第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。

  • 第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。

  • 第四步,使用内存查看工具动态查看内存使用情况。


全部评论: 0

    我有话说: