我想知道在我需要实例化数千次的类中声明一个静态字段来跟踪该类的所有实例在资源使用方面是否昂贵。我通常会创建另一个类,如下例所示,但我想知道是否可以使所有内容更加紧凑而不浪费资源。
1
public class Object {
public static List<Object> objects = new ArrayList<>();
public Object() {
objects.add(this);
}
//My code
}
2
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);
}
}
这两种方法有什么区别?
最佳答案
除了“对象”字段的可见性之外,您的示例之间没有实际差异。
PS:您的代码将导致内存泄漏,因为您从未从列表中删除对象。
关于java - 静态字段的资源使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40327431/