我明白什麼是Java WeakReference。我想知道的是,通常將哪種具體問題用作解決方案。有沒有包含它們的模式?何時使用WeakReference?
1
A
回答
3
WeakReference
和SoftReference
用於當你想保留某些東西以防萬一需要時 - 但你可能不需要它,如果你確實需要它,你可以重新創建它。
例如,如果您有從網站獲取的信息緩存,則不需要不斷重新獲取它,但是如果您需要內存,則可以隨時丟棄一段時間沒有使用過的內容如果你確實需要它,可以重新獲得它。
SoftReferences
對於這種緩存尤其有用,因爲它告訴GarbageCollector除非真的需要釋放內存,否則不要刪除對象。
WeakReference
另一方面,GC可以儘快清理。
我在與工廠模式結合之前使用過它們。在工廠中創建對象時,請保留SoftReference
。如果再次詢問它們,則返回已經創建的對象。如果他們不存在或已被垃圾收集,然後創建它們,返回它們,並在工廠內保留SoftReference
。
相關問題
- 1. 使用ReferenceQueue和WeakReference
- 2. WeakReference Bug?
- 3. 儘管使用weakreference,asynctask中的memoryleak
- 4. C#:正確使用WeakReference IsAlive屬性
- 5. 並行使用WeakReference <T>?
- 6. 使用的WeakReference和WakHasMap Android的位圖
- 7. 如何強制WeakReference死亡?
- 8. WeakReference理解
- 9. RelayCommand和WeakReference的
- 10. WeakHashMap和WeakReference
- 11. WeakReference on buttonClick
- 12. 測試WeakReference
- 13. 從Weakreference創建強引用
- 14. WeakReference,Weakhashmaps,softreferences用於什麼?
- 15. 使用WeakReference時,在Java中使用後必須設置爲null的強引用?
- 16. 如何在Android應用程序中使用Soft/WeakReference類?
- 17. 將定時器傳遞給WeakReference
- 18. 當WeakReference被移除時的回調
- 19. 如何使用WinDBG/SOS和ClrMD檢查WeakReference值?
- 20. WPF的WeakReference和GC
- 21. 什麼時候在C#中使用WeakReference(如果不是用於緩存)?
- 22. 參考銷燬活動,即使WeakReference的使用
- 23. WeakReference引用委託時GC不會收集?
- 24. 什麼是在對象被銷燬時使用WeakReference的一般方法?
- 25. WeakReference vs Android中的強引用AsyncTask
- 26. 儘管WeakReference沒有調用finalize()方法
- 27. 檢查WeakReference的目標引用計數
- 28. 的WeakReference和事件處理
- 29. Java中的WeakReference線程
- 30. Android中的WeakReference/AsyncTask模式
您可以使用它來保留與對象相關的一些屬性,而不會阻止刪除該對象。 –
https://weblogs.java.net/blog/2006/05/04/understanding-weak-references(谷歌上的第一個鏈接) –
不要忘了你有標籤本身的stackoverflow wiki:http:// stackoverflow。 com/tags/weak-references/info –