2014-11-02 33 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