2014-11-02 51 views
2

ReferenceQueue是如何工作的?以及如何在项目中使用它?ReferenceQueue在Java中如何工作?

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

+1

退房这个话题。它应该是非常丰富的:http://stackoverflow.com/questions/14450538/using-javas-referencequeue – 2014-11-02 13:35:24

+0

这是做什么?我不明白。 – 2014-11-02 14:10:11

+0

必须阅读文章参考http://weblogs.java.net/blog/2006/05/04/understanding-weak-references – Vipin 2014-11-12 07:30:52

回答

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