关于类GC,它们必须满足多少条件


public class Test{
    public static void main(String... args){
        Test test = new Test();
        Class testClass = Test.class;
    }
}

据我所知,如果jvm想要GC测试类,它必须满足以下条件:

  1. 所有Test实例已经GC'ed.

  2. Test的类加载器GC'ed

  3. 测试不能在任何地方反映(我不确定这种情况)

我的问题是,

  1. jvm是否需要testClass对象GC'ed或testClass GC后测试GC'ed?

  2. 在什么情况下类加载器会被GC'ed

  3. 说明条件3

  4. 列出的条件是否足够?

类对象由Java虚拟机在装入类时自动构造,并通过调用类装入器中的defineClass方法来构造。

最新更新