我使用的是單有關在運行時給予每個對象的唯一副本:辛格爾頓在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