5
A
回答
3
字符串是對象,將在未引用時收集。
靜態字段通常保持對對象的永久引用,從而避免收集這些對象。但只要你仍然需要那些完全沒問題的物體。
1
不,垃圾收集器不會收集靜態字段。通常垃圾收集不會收集你的類,只要你的類的一個實例存在並指向它將保留。
5
垃圾收集器只收集非可訪問的對象。靜態字段所引用的對象在其類被加載後即可訪問,因此它顯然不會被收集(除非字段被設置爲引用其他內容,導致原始對象成爲可能有資格收集)。
至於字符串,它取決於。字符串是實現的,因此始終可以訪問。否則,相同的規則適用於任何對象。
2
任何引用對象的static
字段都會阻止收集該對象,因爲static
字段與某個類的Type
對象關聯。這些又與AppDomain
相關聯,因此將作爲GC根源。
對於strings
,取決於是否已被實施。如果有,則當前AppDomain
的實習生池會引用它,從而阻止收集。如果不是,那麼string
將表現得像其他任何類對象一樣,並且當它不再可以通過GC根目錄的引用鏈訪問時有資格進行收集。
請注意,在這兩種情況下,如果AppDomain
被卸載,對象將有資格收集。
相關問題
- 1. 字符串和垃圾收集
- 2. 垃圾收集和字符串
- 3. 靜態字段是否爲垃圾收集打開?
- 4. 字符串文字的垃圾回收
- 5. C#靜態垃圾收集器?
- 6. Java垃圾收集器和字符串操作
- 7. 字符串的垃圾回收
- 8. Java 8字符串垃圾回收
- 9. 片段垃圾收集
- 10. 在靜態字段中引用自身的類是否可以垃圾收集?
- 11. 垃圾收集
- 12. JNI函數返回字符串是垃圾收集?
- 13. CFRetain C字符串與垃圾收集器啓用
- 14. 微軟UCMA:字符串不被垃圾收集
- 15. 惰性IO - 字符串沒有垃圾收集?
- 16. 垃圾收集YGCT和垃圾收集時間不斷上升
- 17. 動態System.Timers.Timer和垃圾收集?
- 18. Java垃圾收集器和字段變量
- 19. 字符串結尾的垃圾字符?
- 20. 垃圾收集器和靜態類,變量
- 21. Renderscript和垃圾收集器
- 22. 垃圾收集和存儲
- 23. 垃圾收集和反射
- 24. 方法和垃圾收集
- 25. 垃圾收集和回調
- 26. 垃圾收集和jQuery?
- 27. Java垃圾收集和空
- 28. 結構和垃圾收集
- 29. 指針和垃圾收集
- 30. Node.JS中的垃圾收集套接字
對於'static'的答案,請參見[here](http://stackoverflow.com/questions/6600093/do-static-members-ever-get-garbage-collected) – dlev
他們是,但不是GC 。它需要AppDomain.Unload()。 ASP.NET大量使用AD,確切的規則對我來說有點神祕。希望這個評論能以正確的方式引導答案,只有最低投票答案提到他們。 –