那么,我正在经历Java中的内存泄漏。为什么这个程序会导致内存泄漏?
我看到这个简单的程序如下这里笔者说, 内存泄漏可能与此计划之下
但是能告诉我什么是错用此程序,以及为什么它可以 产生内存泄漏?
package com.code.revisited.memoryleaks;
public class StackTest {
public static void main(String[] args) {
Stack<Integer> s = new Stack<>(10000);
for (int i = 0; i < 10000; i++) {
s.push(i);
}
while (!s.isEmpty()) {
s.pop();
}
while(true){
//do something
}
}
}
这可能是因为堆栈仍然会占用一些位置,但这不是真正的“泄漏”。 – 2013-04-07 17:38:26
这不是内存泄漏。我想理想的情况是'Stack'会进入一个范围,当你完成它时它可以被GC'd,但这不是一个“泄漏”。 – 2013-04-07 17:39:05
如果你指的是http://coderevisited.com/memory-leaks-in-java/,那么泄漏不在这个例子中,而是在'Stack.pop'中。这部分是好的。 – zch 2013-04-07 17:41:27