1

我是 Java EE 开发人员,但我不知道在日常编程中哪里可能使用弱引用或软引用。

4

2 回答 2

0

您通常不会在日常编程中使用它们(至少我没有,而且我认为我们大多数人都没有)但它们可能非常有用!

对我来说实际情况是:

WeakReference 用于调试目的(例如跟踪打开的数据库连接)。

SoftReference 用于快速而肮脏的缓存(例如缓存大型 Java POJO,这些 POJO 的创建“昂贵”且不应立即清理)。

在我看来,PhantomReference 真的不切实际。

于 2013-08-27T14:32:53.387 回答
0

有很多很好的参考资料(好双关语!),我建议您 Google Bob Lee,“虚拟机中的幽灵”。

简而言之,SoftReference 有时可用作快速且脏的缓存,但它们并没有那么有用。WeakRefences 不用于缓存,但您的侦听器列表绝对应该使用它们,以便可以对不需要的侦听器进行垃圾收集。

于 2011-12-06T05:01:31.370 回答