Car car = new Car(22000,"silver");
WeakReference<Car> weakCar = new WeakReference<Car>(car);
car = null;
System.gc();
以上代码当gc后,weakCar.get() 返回null,说明Car对象已被回收,但是问题是,weakCar对象,在什么时间段会被回收?为了回收一个car对象又new了一个weakCar对象,是不是有点浪费??
Car car = new Car(22000,"silver");
WeakReference<Car> weakCar = new WeakReference<Car>(car);
car = null;
System.gc();
以上代码当gc后,weakCar.get() 返回null,说明Car对象已被回收,但是问题是,weakCar对象,在什么时间段会被回收?为了回收一个car对象又new了一个weakCar对象,是不是有点浪费??
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
weakCar对象被回收的时机和普通的对象是一样的,也就是gc root不可达的时候
弱引用本身不大,但是被引用的对象可能不小,所以合理运用不算浪费