转:http://outofmemory.cn/c/java-outOfMemoryError

内存溢出和内存泄漏定义:

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;

内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

memory leak会最终会导致out of memory!

java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。

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

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

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

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

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

启动参数内存值设定的过小;

此错误常见的错误提示:

tomcat:java.lang.OutOfMemoryError: PermGen space

tomcat:java.lang.OutOfMemoryError: Java heap space

weblogic:Root cause of ServletException java.lang.OutOfMemoryError

resin:java.lang.OutOfMemoryError

java:java.lang.OutOfMemoryError

java 内存溢出和内存泄漏_java中的内存溢出和内存泄漏相关推荐

  1. java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别

    JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...

  2. java 内存溢出和内存泄漏_java中内存溢出和内存泄漏的区别

    虽然在java中我们不用关心内存的释放, 垃圾回收机制帮助我们回收不需要的对象,但实际上不正当的操作也会产生内存问题:如,内存溢出.内存泄漏 内存溢出:out of memory:简单通俗理解就是内存 ...

  3. java static内存泄漏_Java中的内存泄漏

    内存泄漏是指不再使用的对象持续占有内存空间而得不到及时释放,从而造成内存空间的浪费称为内存泄漏.比如,长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏,尽管短生命周期对象已经不再需要,但是 ...

  4. java 数据保存内存_java中的各种数据类型在内存中存储的方式 一

    1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...

  5. 什么情况下java会出现堆溢出_【Java面试题第三期】JVM中哪些地方会出现内存溢出?出现的原因是什么?...

    内存溢出(Out Of Memory)经常简称为OOM,在jvm中主要分为方法区.堆.栈.本地方法栈.程序计数器这几部分,其中程序计数器是唯一不会出现OOM的,也就是说其他区域都会出现OOM.下面来分 ...

  6. java斐波那切数列_Java中的递归方法

    递归算法 1.递归算法 递归在计算机科学中也称为递归算法.一些问题在分解的时候会有这样的现象:解决该问题的过程是由重复的相似子过程组成,类似这样的问题我们都可以通过递归算法进行解决.在计算机语言中,递 ...

  7. java堆和栈的区别_JAVA中堆和栈的区别

    在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...

  8. java字面量和符号引用_java中字面量,常量和变量之间的区别(附:Integer缓存机制)...

    一.引子 在各种教科书和博客中这三者经常被引用,今天复习到内存区域,想起常量池中就是存着字面量和符号引用,其实这三者并不是只在java中才有,各个语言中都有类似的定义,所以做一下总结,以示区分. 二. ...

  9. java栈和堆的区别_Java中堆和栈的区别

    堆和栈都是Java用来在RAM中存放数据的地方. 堆 (1)Java的堆是一个运行时数据区,类的对象从堆中分配空间.这些对象通过new等指令建立,通过垃圾回收器来销毁. (2)堆的优势是可以动态地分配 ...

  10. java file文件读取文件内容_java中的File文件读写操作

    之前有好几次碰到文件操作方面的问题,大都由于时间太赶而没有好好花时间去细致的研究研究.每次都是在百度或者博客或者论坛里面參照着大牛们写的步骤照搬过来,之后再次碰到又忘记了.刚好今天比較清闲.于是就在网 ...

最新文章

  1. pageoffice网页提示未安装_Adobe Photoshop CC 2019 详细图文安装教程
  2. 8个前沿的 HTML5 CSS3 效果【附源码下载】
  3. 在c语言中引用数组元素时,其数组下标的数据类型允许是什么
  4. listview控件在php的使用方法,Android_Android编程之控件ListView使用方法,本文实例讲述了Android编程之控 - phpStudy...
  5. android微信支付坑,微信支付踏坑之旅
  6. 南蛮图腾(洛谷P1498题题解,Java语言描述)
  7. cefsharp 网页另存为图片_如何将PDF转换为JPG图片?这些转换方法一学就会
  8. Docker 容器的通信(十二)
  9. srgan要训练多久_有氧运动要多久才开始消耗脂肪?
  10. [Android]Webview中JS接口调用Java-版本问题
  11. [BZOJ3506] [Cqoi2014] 排序机械臂 (splay)
  12. matlab绘制不同线性的直方图,在matlab中绘制多个垂直直方图
  13. fluent设置uds c语言程序,Fluent中UDF和UDS二次开发高级实例专题
  14. 12、阈值分割基础理论
  15. 简述多媒体计算机的特点,多媒体技术的主要特点
  16. VBA玩转系统剪贴板
  17. 行列式与矩阵相关与应用
  18. 关于JavaScript(JS)
  19. [转]Todd.log - a place to keep my thoughts on programming 分布式架构中的幂等性
  20. 出现Cannot find module 'xxx' 错误

热门文章

  1. 191029_中国地震局爬取
  2. pandas之map(), apply()和applymap()
  3. 使用UE去除复制文本中的空格、换行符和TAB
  4. LeetCode刷题——392. 判断子序列
  5. 深度学习花书-5.4 估计、偏差和方差
  6. 量子时代已来,与时代接轨,从这本书开始
  7. 万里航行总舵手——业务测试架构的设计
  8. 博文视点大讲堂第44期——招聘真相全揭秘 圆满结束
  9. 数值优化之高斯-牛顿法(Gauss-Newton)
  10. HTML - 字符实体