使用WeakReference进行本地参考是个好主意吗?

时间:2015-10-27 15:52:54

标签: java

现在我正在开发一个java应用程序。我正在创建许多方法本地对象。我正在使用WeakReference在下面的方法中创建这些对象。

{name_full.NAMETYPE} = "a" and
(if {GENERIC.GROUPTAG} in ["A","B","C","D","E","F","G","H","I","J","K","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"] OR
{GENERIC.GROUPTAG} = "L" and
{MEMBERSHIP_FULL.MEMBTYPE} = "IALS" and
{SUBSCRIPTIONLEVEL_FULL.SUBLTYPE} = "life" THEN TRUE)

我有一个疑问,将WeakReference用于局部变量是个好主意吗?如果不是那么为什么?

提前多多感谢。

1 个答案:

答案 0 :(得分:2)

以下是Understand weak reference

的指南

每当需要引用对象时,您应该考虑使用它,但是您不希望该引用保护对象免受垃圾收集器的影响。一个典型的例子是当内存使用率过高时(通常使用WeakHashMap实现),您希望对其进行垃圾回收。 Ref

弱引用对象,它们不会阻止它们的指示物被最终化,最终化,然后回收。弱引用最常用于实现规范化映射。

假设垃圾收集器在某个时间点确定对象是弱可达的。那时它将原子地清除对该对象的所有弱引用以及对任何其他弱可达对象的所有弱引用,通过一系列强引用和软引用可以从该对象到达该对象。同时,它将声明所有以前弱可达的对象可以最终确定。在同一时间或稍后,它会将那些在参考队列中注册的新清除的弱引用排入队列。Ref

相关问题