我使用的是单有关在运行时给予每个对象的唯一副本:辛格尔顿在Java中对象的集合,垃圾收集
Car object1= CarFactory.createCar(id);
其中createCar方法是:
private static ArrayList<Car> cars= new ArrayList<Car>();
public static synchronized Car createCar(int id){
Car result= new Car(id);
int index= cars.indexOf(result);
if (index==-1){
cars.add(result);
return result;
} else {
return cars.get(index);
}
}
问题在于,通过这种方法,每辆车总是具有“汽车”集合的参考,并且对象的内存永远不会释放。我该如何改进它?
不应该'cars'是'static' ? – Jeffrey 2012-04-08 19:49:13
是的,这是一个成绩单的错误 – Addev 2012-04-08 19:51:18
我会做的第一件事是删除可变静态。 – 2012-04-08 19:53:57