弱,强引用和垃圾回收



我有两种情况:

  1. 当一个对象(只有强引用)丢失其所有强引用时,它可用于垃圾回收。
  2. 当对象只有弱引用时,它也可用于垃圾回收。

在什么情况下对象会收集得更快?还是没有区别?

我正在开发旧的安卓应用程序。我的前任使用弱引用(作为实例变量)将视图存储在 RecyclerView 适配器的持有者中。我想知道他为什么这样做。我有一个想法,可以是弱引用强制GC收集对象。我的意思是,在下一个垃圾收集中,只有弱引用 100% 的对象将被收集,而没有引用的对象可能不会。可以这样吗?

为什么这很重要?

关键是:垃圾回收器开始收集符合条件的对象......当它"思考"时,它被要求这样做。换句话说:您的对象何时符合条件并不重要;重要的是,当GC开始收集,他们有资格。

除此之外:在许多情况下,您无法区分这两种情况。

意思是:如果你对X使用弱引用;这仍然意味着可能存在其他"强"引用。只有当这些引用消失时,对象才有资格。

关键点是:只会收集符合条件的对象。他们的历史使他们有资格根本不重要。

相关内容

  • 没有找到相关文章

最新更新