为了账号安全,请及时绑定邮箱和手机立即绑定

Can you spot the "memory leak"。如何写出内存泄漏的代码

Can you spot the "memory leak"。如何写出内存泄漏的代码

car 2017-09-28 00:13:23
// Can you spot the "memory leak"? import java.util.Arrays; public class Stack {     private Object[] elements;     private int size = 0;     private static final int DEFAULT_INITIAL_CAPACITY = 16;     public Stack() {         elements = new Object[DEFAULT_INITIAL_CAPACITY];     }     public void push(Object e) {         ensureCapacity();         elements[size++] = e;     }     public Object pop() {         if (size == 0)             throw new EmptyStackException();         return elements[--size];     }     /**      * Ensure space for at least one more element, roughly      * doubling the capacity each time the array needs to grow.      */     private void ensureCapacity() {         if (elements.length == size)             elements = Arrays.copyOf(elements, 2 * size + 1);     } } 这段代码会发生内存泄漏,无论我如何写测试类,都没有发生内存泄漏。
查看完整描述

1 回答

?
leiqjl

TA贡献3条经验 获得超0个赞

当你调用pop方法时,弹出了这个对象,但栈内部的数组还保留着这个引用。


查看完整回答
反对 回复 2017-09-28
  • car
    car
    谢谢。这个回答书上有,我要的是代码。否则的话,我只是知道,但是没看见。
  • 1 回答
  • 0 关注
  • 1567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信