【问题标题】:When to use WeakReference? [duplicate]何时使用弱引用? [复制]
【发布时间】:2014-02-12 13:21:11
【问题描述】:

我了解 Java 弱引用是什么。我想知道的是它通常用作解决哪种具体问题。有没有包含它们的模式?

【问题讨论】:

标签: java weak-references


【解决方案1】:

WeakReferenceSoftReference 用于您想保留某些东西以防再次需要它时使用 - 但您可能不需要它,如果您确实需要它,您可以重新创建它。

例如,如果您有一个从网站获取的信息缓存,您不希望不断地重新获取它,但是如果您需要内存,您可以随时丢弃一些您有一段时间没有使用的信息,然后如果您确实需要,请再次将其取回。

SoftReferences 特别适用于这种缓存,因为它告诉 GarbageCollector 不要删除对象,除非它确实需要释放内存。

WeakReference 另一方面,GC 可以随时清理。

在与工厂模式结合之前,我已经使用过它们。在工厂中创建对象时,为对象保留SoftReference。如果再次要求它们,则返回已创建的对象。如果它们不存在或已被垃圾回收,则创建它们,返回它们,并在工厂内保留 SoftReference

【讨论】:

猜你喜欢
  • 2013-08-06
  • 2011-01-27
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
相关资源
最近更新 更多