WeakReference对象本身什么时候被回收?(不是构造弱引用传入的对象)

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对象,是不是有点浪费??

阅读 6.5k
1 个回答

weakCar对象被回收的时机和普通的对象是一样的,也就是gc root不可达的时候
弱引用本身不大,但是被引用的对象可能不小,所以合理运用不算浪费

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题