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对象,是不是有点浪费??
4 回答1.3k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答724 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
weakCar对象被回收的时机和普通的对象是一样的,也就是gc root不可达的时候
弱引用本身不大,但是被引用的对象可能不小,所以合理运用不算浪费