回答
唯一原因,GC將dealocate您的實例的是,如果整個應用程序被破壞......
當整個應用程序被銷燬時,GC也會被銷燬。 – 2013-03-02 16:32:08
這顯然是錯誤的:考慮:static {new Object(); }這是一個單身人士,它立即收集垃圾。 – 2013-03-02 16:40:12
垃圾收集收集,沒有什麼指向,除非一提的是靜態對象。 Are static fields open for garbage collection?
在Java中,沒有這樣的東西作爲「靜態對象」。 – 2013-03-02 16:39:39
一個對象的結構不能被聲明爲靜態的,但你可以有一個靜態引用/它的實例。編輯回答說參考。 – Shellum 2013-03-02 19:37:21
是啊!不過,我認爲你可以忽略靜態引用的全部內容。您的答案在逗號處完整無誤! – 2013-03-02 19:57:15
有很多方法來實現一個單例。最好的之一是:
public static enum My { SINGLETON; }
不管是否是單身人士對於是否爲GCed都沒有影響。如果沒有強引用,則會對對象進行GC處理。查看它(http://weblogs.java.net/blog/2006/05/04/understanding-weak-references)。
還有一個有趣的問題。在Android中,您的應用程序無法控制它的生命週期。有可能一個流程將以您不希望的方式終止並重新創建。如果發生這種情況,靜態最終變量將被重新初始化。還有更多在這裏:
http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/
- 1. 如何以及何時處置/垃圾收集單例實例
- 2. 清單實例正在垃圾收集
- 3. 垃圾收集與臨時實例類
- 4. Android的RAM釋放/垃圾收集
- 5. 在讓垃圾收集垃圾之前,我需要釋放Swing組件嗎?
- 6. 在java中的垃圾收集示例?
- 7. 這會收集垃圾嗎?
- 8. 我可以檢測垃圾收集器的工作時間嗎?
- 9. 爲什麼GCC4警告,以及如何避免它
- 10. 爲什麼發生ArrayIndexOutOfBoundsException以及如何在Android中避免它?
- 11. 爲什麼拋出AbandonedMutextException以及如何避免它?
- 12. 我如何獲得AppContext來釋放AWT組件,以便它們可以被垃圾收集?
- 13. 我可以檢測到我的類實例未被設置或垃圾回收?
- 14. 垃圾收集器如何釋放AsyncTask分配的內存
- 15. 垃圾收集一個類與參考其實例?
- 16. 垃圾收集器
- 17. 從函數創建和返回對象:可以避免垃圾回收嗎?
- 18. 爲什麼FastBitmap無法收集垃圾?
- 19. 爲什麼這是垃圾收集
- 20. C有垃圾收集器像Java嗎?
- 21. 如何避免實時.NET應用程序垃圾回收?
- 22. 'bound_this'引用的實例只是不被垃圾收集
- 23. 垃圾收集器vs池
- 24. 垃圾收集器asp.net
- 25. 爲什麼G1垃圾收集器在完整垃圾收集中使用單線程?
- 26. ParameterizedThreadStart是否保證對象實例不會被垃圾收集?
- 27. java私有的內部類實例沒有被垃圾收集
- 28. 智能Java編譯器垃圾收集
- 29. 我們可以避免重複計算實例IP地址嗎?
- 30. 將委託設置爲零以「避免發送到釋放實例的消息」
有使用了WeakReference的慣例,嘗試使用。 – IamStalker 2013-03-02 16:13:23