内存泄露是指程序中间动态分配了内存,但在程序结束时没有释放这部分内存,从而造成那部分内存不可用的情况,重启计算机可以解决,但也有可能再次发生内存泄露,内存泄露和硬件没有关系,它是由软件设计缺陷引起的。
内存溢出就是你要分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。
当被分配的对象可达但已无用(未对作废数据内存单元的引用置null)即会引起。
如:
Java代码
1. Vector v=new Vector(10);
2. for (int i=1;i<100; i ) {
3. Object o=new Object();
4. v.add(o);
5. o=null;
6. }
7. // 此时,所有的Object对象都没有被释放,因为变量v引用这些对象。
8. // 对象加入到Vector后,还必须从Vector中删除,最简单释放方法就是将Vector对象设置为null。
|