for(int i=0; i<100; i++){
List<Integer> ls =new ArrayList<Integer>();
ls.add(1);
}
每次迭代后,分配的内存是否仍然保留在那里。我的意思是我想释放他们。如果我不希望它在那里,我该怎么办?
我遇到了内存不足的问题,不知道是否是这种事情引起的
最佳答案
ls
是 for
循环内的局部变量。这意味着一旦迭代完成,它可以被垃圾收集,并且确实被标记为这样。
JVM 是否决定收集它是完全不同的事情,并且取决于 JVM 的实现。它可以通过传递给 java 的参数(例如,-Xms
、-Xmx
或臭名昭著的 -XX:
参数)来影响,但也可以没有严格控制。
关于java - java中分配的内存是否仍保留在下面的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23072334/