Java WeakReference与swift weak关键字相同吗



我知道这篇文章中也回答了类似的问题。然而,我仍然对java是否存在保留周期问题感到困惑,因为java也有WeakReference类。那么,它们的目的是相同的吗?他们两个有什么区别?

Java没有;保留循环问题";。

这个问题存在于使用引用计数的系统中,而Java GC不使用引用计数。

因此,在Java中,WeakReference类与这些无关。这只是一种保持对某个事物的引用的方法,同时也不会阻止它被垃圾回收

换句话说,你可以用它来记住一个对象,只要其他东西(强烈(引用了它

这个功能与Swift中的weak关键字非常相似。然而,如上所述,引用循环不会阻止在Java中收集对象,因此在这种特定情况下不需要WeakReference

这个SO问题列出了弱参考的一些实际用途,这个问题专门讨论了在Java/Android环境中的用途。

最新更新