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,确切的规则对我来说有点神秘。希望这个评论能以正确的方式引导答案,只有最低投票答案提到他们。 –