那麼,我正在經歷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