垃圾收集器是否会清除静态方法和静态类
答案 0 :(得分:6)
不清理方法和类。对象是。
如果您有一个对象的静态引用,一旦静态超出范围(即卸载AppDomain时),将清除相关对象。
答案 1 :(得分:1)
重复:Garbage collection of static members
我还可以提一下,当收集OBJECT时。不会收集方法和类。
public class TestClass
{
public static Hashtable h_object = new Hashtable();
}
TestClass.h_object = null;
//* here it has no more references and it will be added to GC.
答案 2 :(得分:0)
据我所知,收集AppDomain时会发生这种情况(即应用程序关闭时)。
答案 3 :(得分:0)
如果您要引用静态字段,那么不需要。根据定义,它们一直保留到流程结束(或AppDomain)。
如果您在静态方法中引用由代码分配的局部变量,则GC将整理分配的堆内存
答案 4 :(得分:0)
static意味着只有一个这种类型的对象。最好的例子是主要方法。它只存在一次。所以垃圾收集也会收集这些对象,但不会自动收集到程序中,只是在最后。
除了那个LukasŠalkauskas用“some_object”说的话。“some_other_obj”= null;
答案 5 :(得分:-1)
没有。在关闭应用程序域之前,不会删除静态类。