我想知道在资源使用方面是否昂贵,以声明一个静态字段来跟踪我需要数千次的类中该类的所有istances。我通常会创建另一个类,如下面的示例,但我想知道是否可以在不浪费资源的情况下使一切更紧凑。
public class Object {
public static List<Object> objects = new ArrayList<>();
public Object() {
objects.add(this);
}
//My code
}
public class Object {
public Object() {
ObjectManager.addObject(this);
}
//My code
}
public class ObjectManager {
private static List<Object> objects = new ArrayList<>();
public static void addObject(Object obj) {
objects.add(obj);
}
}
这两种方法有什么区别?
答案 0 :(得分:0)
除了&#34;对象&#34;的可见性之外,您的示例之间没有实际差异。字段。
PS:您的代码会导致内存泄漏,因为您永远不会从列表中删除对象。