内存溢出与内存泄漏
来源:互联网 发布:php socket了解 编辑:程序博客网 时间:2024/06/02 03:24
最近看java虚拟机,看见内存溢出与内存泄漏两种错误。一直不太清楚区别。特记录一下
1.内存溢出
内存溢出(out of memory),指的是在程序申请内存时,没有足够的空间可以给你用。比如你想存一个long的数,但是内存只有int的大小,你去存了就会报out of memory的异常。
2.内存泄漏
内存泄漏指的是给了你申请了一片内存,但是却没有释放。但是却没有了指向了这片内存的指针,所有系统和你都没有办法在使用这片内存,就发生了内存泄漏。
以下来自百度百科:
以发生的方式来分类,内存泄漏可以分为4类:
- 常发性
发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
- 偶发性
发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
- 一次性
发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块且仅一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
- 隐式
程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。但是对于一个服务器程序,需要运行几天、几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存。所以,我们称这类内存泄漏为隐式内存泄漏。
0 0
- 内存溢出与泄漏
- 内存泄漏 与 内存溢出
- 内存泄漏与内存溢出
- 内存溢出与内存泄漏
- 内存溢出与内存泄漏
- 内存泄漏与内存溢出
- 内存泄漏与内存溢出
- 内存泄漏与内存溢出
- 内存溢出与内存泄漏
- 内存溢出与内存泄漏
- 内存溢出与内存泄漏
- 内存溢出与内存泄漏
- 内存溢出与内存泄漏
- 内存泄漏与内存溢出
- 内存溢出与内存泄漏
- 内存泄漏与内存溢出
- Linux内存泄漏与溢出
- 内存溢出与内存泄漏的区别
- c指针
- 矩阵顺时针旋转
- iputils软件包简介
- 1
- 第六届蓝桥杯省赛javaB组真题及答案
- 内存溢出与内存泄漏
- 2
- shell 笔记2
- ModelSim对.txt文件的读写——十进制格式
- (五)容器-集合
- 蓝桥杯 算法提高 矩阵乘法 (区间dp)
- ACM递推递归练习J 数学黑洞
- SSM(spring + springMVC + mybatis)配置
- java设计模式之模板方法模式