java - java中分配的内存是否仍保留在下面的代码中

标签 java memory garbage-collection

    for(int i=0; i<100; i++){
    List<Integer> ls =new ArrayList<Integer>();
    ls.add(1);
}

每次迭代后,分配的内存是否仍然保留在那里。我的意思是我想释放他们。如果我不希望它在那里,我该怎么办?

我遇到了内存不足的问题,不知道是否是这种事情引起的

最佳答案

lsfor 循环内的局部变量。这意味着一旦迭代完成,它可以被垃圾收集,并且确实被标记为这样。 JVM 是否决定收集它是完全不同的事情,并且取决于 JVM 的实现。它可以通过传递给 java 的参数(例如,-Xms-Xmx 或臭名昭著的 -XX: 参数)来影响,但也可以没有严格控制。

关于java - java中分配的内存是否仍保留在下面的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23072334/

相关文章:

java - 创建自定义 log4j Appender 时出错

ios - 调试 - 如何分析 react native 内存使用情况

mysql - 为什么 MySQL 服务器不将表写入文件?

java - 监视 Java 对象销毁

java - 设计/实现问题——Java/JSP/Servlet

java - Spring <c :foreach issue jSTL java

java - 为什么jsp页面中JSTL标签被忽略?

python - numpy 的内存分析器

ruby - GC.start 在 Pry 中无效,但在 IRB 中有效

c - c中的垃圾收集器用于循环内的变量