Java WeakReference 是否与 swift weak 关键字相同?

问题描述

我知道在 this post 中已经回答了类似的问题。但是,我仍然对 java 是否有保留循环问题感到困惑,因为 java 也有 WeakReference 类。那么,它们的目的是否相同?两者有什么区别?

解决方法

Java 没有“保留周期问题”。

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

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

换句话说,只要有其他(强烈)引用它,您就可以使用它来记住一个对象。

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

This SO question 列出了弱引用的一些实际用途,this question 专门讨论了在 Java/Android 环境中的用途。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...