内存泄漏/溢出/垃圾回收

来源:互联网 发布:英文版进销存软件 编辑:程序博客网 时间:2024/05/22 00:33

模拟堆栈,无垃圾回收,一直添加元素,造成内存溢出

class StackList{    Object[] elements;    int index = 0 ; //当前的索引值    public StackList(){        this.elements = new Object[3];    }    //添加内容    public void add(Object o){        //添加元素之前应该要先检查是否容量够用。        ensureCapcity();        elements[index++] = o;    }    //出栈: 删除集合的元素,并且返回。    public Object pop(){        int tempIndex = --index;        Object o = elements[tempIndex];        elements[tempIndex] = null; //让该位置不再 引用着指定的对象,让垃圾回收期赶快回收该垃圾。否则内存泄露        return o;    }    //检查当前的数组使用够用。    public void ensureCapcity(){        if(index==elements.length){            //计算一个新的长度            int newLength = elements.length*2;            elements = Arrays.copyOf(elements, newLength);        }    }    //获取当前的元素 个数    public int size(){        return index;    }}
原创粉丝点击