我要问的可能是一个愚蠢的问题,所以请原谅我。所以它是这样的:
List<Boss> bossList = new ArrayList<Boss>();
Boss b = null;
for(Employee e : List<Employee> myList){
b = new Boss();
b.setEmployee(e);
bossList.add(b);
b = null;
}
所以在上面的场景中,我创建了很多 Boss 对象,然后取消引用它们(我知道我不需要写“b = null”,但我这样做是为了清楚我的问题)。在正常情况下,我会通过这样做将它们标记为垃圾回收,但是因为在这种情况下,我将这些 Boss 对象添加到 List 集合中,它们是否标记为 GC?如果不是那为什么?List 收集如何在内部工作以保存每个添加的 Object 的引用,从而避免垃圾收集?
[EDIT]
问题的范围仅限于在for
循环中创建的单个 Boss 对象,考虑到此方法将 List 的引用返回给外界。