为什么下面的代码会造成死锁?
List<Object> list = new ArrayList<>();
while (true) {
for(int i = 0; i < 1000000; i++){
list.add(new Object());
}
}
引发内存不足错误
但是这段代码没有引发此类错误
while(true) {
List<Object> list = new ArrayList<>();
for(int i = 0; i < 1000000; i++){
list.add(new Object());
}
}
我看到这与列表是在while循环内部还是外部创建有关,但我不确定发生这种情况的原因。