問題說明了一切。我有一個數據結構,因爲一個弱散列表,我無法統帥......想知道我是否可以擺脫它:)弱陣如何使用?
Q
弱陣如何使用?
5
A
回答
10
弱數組是一個弱指針數組。弱指針是可能被垃圾收集的值的參考。
如果您在某個值上使用常規指針,則會阻止其垃圾收集,直到裁判本身收集垃圾。如果參考文獻很薄弱,可以在裁判面前收集。
使用示例是將數據提供給多個接收器的源。如果源持有指向接收器的常規指針,則每當不再需要接收器時,它就不會被垃圾收集,直到源(例如可能永遠不會發生)爲止。如果信息源對信宿使用較弱的參考,則可能在信源之前收集垃圾信息。
另一個例子是使用弱哈希表(它涉及弱數組)的類型的哈希調整。快速地,hashconsing是一種記住創建和生活在程序中的給定類型的所有值的方法。與適當的值構造函數一起,這可以確保最大限度地共享該類型的值,並允許在該類型上實現結構上的相等性作爲物理相等性。在這種情況下,如果使用非弱散列表,程序不再使用的值永遠不會被垃圾收集。最後,許多人認爲(錯誤地)弱引用對實現緩存很有用。如果是垃圾收集,請保留一個值較弱的ref,重新加載/重新計算該值。這不是一個好的緩存算法,因爲主要的垃圾回收回收了任何不再被引用的值。因此,您的緩存算法沒有可預測性或有用的屬性,例如,緩存/可用內存的大小不會超過給定比例。
1
相關問題
- 1. 如何使XSS脆弱箱
- 2. 何時使用弱事件?
- 3. 如何使用NSKeyedArchiver存檔弱鏈接?
- 4. 如何在ES6中使弱集或弱地圖可迭代?
- 5. 如何使用命名空間函數使用pragma弱?
- 6. 使用Boost Python與弱點?
- 7. 使用雙向弱指針
- 8. 使用get()弱指針unique_ptr
- 9. 如何遍歷弱映射?
- 10. 如何清理弱引用的集合?
- 11. 弱引用是如何實現的?
- 12. 如何在iPhone應用程序中使用弱鏈接?
- 13. 爲什麼要使用__attribute __((弱))和#pragma弱?
- 14. 弱引用值的弱散列表?
- 15. Lua弱引用
- 16. 如何檢測Wifi或GPRS信號強弱或弱
- 17. 如何使用ko.observable陣列
- 18. EXTERN陣列,如何使用
- 19. 如何使用矩陣
- 20. 如何使用mysql對陣
- 21. 如何陣列使用LINQ
- 22. 如何使用JSON陣列
- 23. Isabelle:如何使用矩陣
- 24. 如何陣列使用ASCII
- 25. 如何使用陣列
- 26. 如何使一個弱引用斯威夫特設置
- 27. 如何使用弱鏈接的CocoaPods庫構建iOS框架
- 28. 如何使用幫助器方法解決脆弱的基類
- 29. 如何使用等效鍵弱點破解TEA密碼?
- 30. 如何在使用弱符號時避免依賴於GLIBC_X.Y
非常好的答案,謝謝! – Yttrill 2011-02-10 14:24:39