我们知道JVM有自动回收机制,那么我们该怎么去测试程序中发生的内存泄漏呢,那首先是让程序不要运行完,我们可以让其sleep一会儿;
以一个顺序表为例,代码如下:
public class Sequence {
private Object[] elem;
private int usedSize;
private static int FAULT_SIZE=10;
public Sequence(){
this.elem=new Object[FAULT_SIZE];
this.usedSize=0;
}
private boolean isFull(){
return this.usedSize==this.elem.length;
}
private boolean isEmpty(){
return this.usedSize==0;
}
boolean add(int pos,Object data) {
//如果pos<0,或者不连续,则不能插入数据
if ( pos < 0 || pos > this.usedSize) {
return false;
}
//扩容,2倍扩容
//拷贝数组:System.arraycopy(),本地方法
if (isFull()){
this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
}
for (int i=this.usedSize-1;i>=pos;i--)