如果我有多個指向同一個對象的弱引用,並且沒有強引用。我可以確定當其中一個返回對象時,這兩個弱引用是否完好無損?對同一個對象的多個弱引用是否被清除?
3
A
回答
1
WeakReference wr1 = new WeakReference(objX);
...//somewhere else
WeakReference wr2 = new WeakReference(objX);
現在:
- 如果在某一時刻wr1.get()返回非空,然後wr2.get()將返回非空過。
- 但是wr1和wr2對象本身是獨立的gc-ed,它們的gs路徑彼此獨立,最重要的是獨立於objX。
相關問題
- 1. 是否可以確定一個對象是否被另一個對象引用?
- 2. 弱引用被清零,但對象未被釋放
- 3. 是否可以在同一個對象內引用對象?
- 4. 我如何知道對象是否可以被弱引用?
- 5. Java中一個對象與另一個對象的弱關聯?
- 6. 確定一個對象是否被多個線程訪問?
- 7. .NET XmlSerializer和對同一對象的多個引用
- 8. 從std :: vector中清除多個對象?
- 9. 驗證對象是否有一個或多個關聯對象
- 10. 當我刪除一個對象時,被刪除的對象是否也被刪除了?
- 11. 由一個迭代器引用的對象已被其他對象擦除
- 12. 在c#中如何知道一個弱引用的對象是否會被垃圾收集?
- 13. 2對同一對象的弱引用顯示不同的信息
- 14. 確定弱引用的對象是否已釋放
- 15. php - 重置/清除一個對象?
- 16. 如何「清除」一個對象?
- 17. 兩個對象有相同的引用是絕對相同的?
- 18. 一個對象給另一個對象,不僅僅是對它的引用
- 19. 清除集合對象中的引用
- 20. 引用同一對象的多個用戶控件
- 21. 引用另一個對象內的多屬性對象
- 22. 創建對象的弱引用
- 23. 對一個對象的所有引用
- 24. 如何檢查兩個變量是否在Python中引用同一個對象?
- 25. 引用類型是一個對象嗎?
- 26. 我創建新引用同一個對象,而不是新的對象
- 27. AS3 - 刪除對象被另一個對象
- 28. Python中同一類的多個對象
- 29. 將對象的引用強制轉換爲對同一類的對象的引用是否有意義?
- 30. 如果一個對象的引用仍然存在,對象是否可以被垃圾收集?
他們將全部設置或清除在一起。但是,如果您依賴於這一事實,我會重新考慮您的設計,因爲從一條指令到另一條指令可能會改變。 – 2011-06-17 08:57:52
@Peter_Lawrey我完全相信他們會一起被刪除,儘管它可能看起來合乎邏輯。無論如何,依靠功能代碼將是一個完全的噩夢。 – Riduidel 2011-06-17 09:05:00
我主要是從理論的角度提出這個問題。我想知道在設計中對同一個對象使用多個弱引用是否安全。我正在考慮使用任務對象,一旦任務完成,我將刪除所有強引用。但是,如果稍後檢索完成的任務,則需要確保我的模型仍處於一致狀態,以便可以跳過其他檢查。 – Dorus 2011-06-17 09:19:48