ReferenceQueue如何在Java中运行?

时间:2014-11-02 12:15:16

标签: java garbage-collection

ReferenceQueue如何运作?以及如何在项目中使用它?

文档说:当WeakReference或SoftReference被清理后,它们将排入ReferenceQueue。这是做什么的?

1 个答案:

答案 0 :(得分:0)

首先要了解ReferenceQueue,您需要了解强引用和弱引用之间的差异。这篇文章可以帮助您:https://community.oracle.com/blogs/enicholas/2006/05/04/understanding-weak-references

什么是ReferenceQueue?

非强引用一旦它们弱引用的堆对象没有任何强引用就开始返回null。所以非强引用的问题是你永远不知道它们什么时候开始返回null。 ReferenceQueue是Java提供的一项规定,用于帮助我们了解弱引用何时符合GC条件,如果我们真的想知道这一点。那应该怎么做呢?如果您在创建弱引用时提供了ReferenceQueue,那么当该弱引用符合GC条件时,它将被引入该ReferenceQueue,然后您可以在检查是否有任何弱引用已在ReferenceQueue中排队时继续轮询该ReferenceQueue。

这是一篇包含以下代码的好文章: http://learningviacode.blogspot.com/2014/02/reference-queues.html