java - 在循环中添加到集合中的对象何时会被垃圾收集?

标签 java garbage-collection

在下面的代码中

List<SomeObject> someObjectList = new ArrayList<SomeObject>();

do {

    SomeObject someObject = new SomeObject();

    someObjectList.add(someObject);

} while(some condition is met);

我的问题

  1. someObject 什么时候会被抓取?
  2. 我在这里泄漏内存了吗?

最佳答案

When will someObject be grabage collected?

someObject 将在无法访问时进行 GC。在提供的简单示例中,这可能会在以下任一情况发生时发生:

  • someObjectList 不再可用
  • someObject 已从 someObjectList 中删除(因此不再可访问)

Am I leaking memory here?

据我所知,您的代码中没有任何内存泄漏点。

关于java - 在循环中添加到集合中的对象何时会被垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478612/

相关文章:

java - HTTP 状态 500 - 未找到 javax.servlet.ServletException 文件

java - 如何实现Java windows服务包装器YAJSW的停止和启动逻辑?

c# - 如何在 C# 中限制线程 RAM 使用

apache-flex - 弹性 : Does using "new" remove event listeners?

java - 为什么DDMS可以通过点击GC按钮来释放内存,而GC却不会自动调用?

c# - 使用 IDisposable 和不使用 IDisposable 的内存释放

java - 为什么使用Gradle代替Ant或Maven?

java:一次读取所有csv文件并对元素/行求和

java - 从文件中打印偶数行和奇数行

Java 垃圾收集器 A 类 -> B 类 -> C 类 -> B 类和循环引用