内存泄露和内存溢出是什么?他们之间的区别是什么?
来源:互联网 发布:英语电影观后感的软件 编辑:程序博客网 时间:2024/04/29 06:35
内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
下面给出了一个简单的内存泄露的例子。在这个例子中,我们循环申请Object对象,并将所申请的对象放入一个Vector中,如果我们仅仅释放引用本身,那么Vector仍然引用该对象,所以这个对象对GC来说是不可回收的。因此,如果对象加入到Vector后,还必须从Vector中删除,最简单的方法就是将Vector对象设置为null。
Vector v=new Vector(10);
for (int i=1;i<100; i++)
{
Object o=new Object();
v.add(o);
o=null;
}
内存溢出是指程序要求的内存,超出了系统所能分配的范围,从而发生溢出。
内存溢是指在一个域中输入的数据超过它的要求而且没有对此作出处理引发的数据溢出问题,多余的数据就可以作为指令在计算机上运行。
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- android 开发中什么是内存泄露什么又是内存溢出?两者的区别是什么?
- 内存泄露和内存溢出的区别
- 内存泄露和内存溢出的区别
- 内存溢出和内存泄露的区别
- 内存溢出和内存泄露的区别
- 内存溢出和内存泄露的区别
- 内存泄露和内存溢出的区别
- 内存溢出和内存泄露的区别
- 内存溢出和内存泄露的区别
- 内存泄露和内存溢出的区别
- 内存泄露和内存溢出的区别
- 内存溢出和内存泄露的区别
- 内存溢出和内存泄露的区别
- 内存泄露和内存溢出的区别
- VMWare虚拟机bridged、host-only和NAT网络模式的区别和用法
- 对gdb调试,函数栈的形式,以及栈对齐方式的理解和实例
- oracle中的序列
- C# WinForm TextBox猜想输入和历史记录输入(源码)
- Java日期操作汇总
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- 120316 VBS 常用 脚本
- EXT框架之Ext.tree.TreePanel
- PowerDesigner 批量生成日期型、中文字符型、数字型测试数据
- Bellman_Ford POJ3259
- 索引和同义词
- 存储到数据库中的文章,为什么取出来之后就没有换行、空格了?
- 根据邮箱DNS读取SMTP服务器地址,匿名发送邮件
- Java数组声明、创建、初始化