所以我想创建一个像这样的对象列表
ArrayList<Obj> lst = new ArrayList<Obj>(10);
for (int i = 0; i < 10; i++) {
Obj elem = new Obj();
lst.add(elem);
}
这是合法的还是当elem引用开始指向Object 2时我是否必须担心对象1被删除?如果这是非法的,我怎么办呢?有没有办法自动生成十个不同的参考名称?
答案 0 :(得分:5)
只有在没有指向它的引用时,垃圾收集器才会删除对象。 在您的情况下,您的列表将指向10个不同的对象对象,并且在您失去对 lst 对象的引用之前它们是安全的。
答案 1 :(得分:3)
这完全合法。 <{1}}将包含对您刚刚创建的对象的引用,因此它不会被GCed。
答案 2 :(得分:1)
您的方法完全有效。您将得到一个包含十个不同对象的列表。