package com.ckw.mianshi;
/**
* 测试内存泄露
* java中导致内存泄露的几个事件:
* 1.HashMap,Verctor等容器中持有对象的引用,尽管对象已经置为null,但还是会发生内存泄露
* 2.监听器类的使用,没有显示置为null
* 3.数据库连接类的close方法没有调用
* 4.单例模式中对另一个类的引用
* @author Administrator
*
*/
import java.util.Vector;
public class MemoryLeak {
static Vector<Object> v = new Vector<Object>(10);
public static void main(String[] args) {
long startTime=System.currentTimeMillis(); //获取开始时间
for (int i=0; i<10; i++){
Object o = new Object();
v.add(o);
o = null; //即使o置为null,V中仍然持有对象o,导致内存泄露
}
//正确的做法是使用完v之后,把v置空
//v = null;
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
}
}
java 内存泄露小测试
最新推荐文章于 2024-06-23 23:07:00 发布