我刚接受采访,有人问我是否有可能在Java中发生内存泄漏。我不知道答案。所以我想知道:
答案 0 :(得分:3)
从广义上讲,内存泄漏是指您继续保留已分配但不再需要使用的内存的任何情况。
考虑以下[公认的人为]例子:
public class LeakingClass {
private static final List<String> LEAK = new ArrayList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("What is your name? ");
while (in.hasNext()) {
name = in.next();
System.out.println("Hi " + name);
LEAK.add(name);
System.out.println("What is your name? ");
}
}
}
LEAK
列表在每次迭代中都会增长,并且无法释放它,但它从未使用过。这是泄密。