内存溢出与内存泄露的区别

来源:互联网 发布:ps手绘效果图软件 编辑:程序博客网 时间:2024/06/05 05:37

内存溢出与内存泄露的区别

内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。内存泄漏就是没有及时清理内存垃圾,导致系统无法再给

内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。

内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽)。

看到上面的解释,可能有些朋友还是不太理解吧。没问题,看以下例子

1.内存泄露是说程序逻辑问题,造成申请的内存无法释放.这样的话无论多少内存,早晚都会被占用光的.

最简单的例子就是死循环了.由于程序判断错误导经常发生此事

2.内存泄漏是指在堆上分配的内存没有被释放,从而失去对其控制。这样会造成程序能使用的内存越来越少,导致系统运行速度减慢,严重情况会使程序当掉。

3.关于内存溢出有点出入。比如说你申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

举个现实中的例子

4.比如有一个桶,装满了水.你丢个苹果进去。桶的水正常。

如果你放个大石头。水就出溢出,内存溢出也就是这个原理

区别:内存溢出,提供的内存不够;内存泄漏,无法再提供内存资源

0 0
原创粉丝点击