我是 Java EE 开发人员,但我不知道在日常编程中哪里可能使用弱引用或软引用。
问问题
349 次
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 回答