为什么这个代码如下
List<Object> list = new ArrayList<>();
while (true) {
for(int i = 0; i < 1000000; i++){
list.add(new Object());
}
}
Run Code Online (Sandbox Code Playgroud)
产生内存不足错误
但是这段代码没有
while(true) {
List<Object> list = new ArrayList<>();
for(int i = 0; i < 1000000; i++){
list.add(new Object());
}
}
Run Code Online (Sandbox Code Playgroud)
我可以看到它与在while循环内部或在其外部创建的列表有明显的关系,但我不确定为什么会发生这种情况.