测试类什么时候初始化
原创
©著作权归作者所有:来自51CTO博客作者CMMKK的原创作品,请联系作者获取转载授权,否则将追究法律责任
反射五:测试类何时初始化(Java)
代码示例:
package reflect;
//测试类什么时候会初始化
public class Test06 {
static {
System.out.println("Main被加载");//1.Main被加载
}
public static void main(String[] args) throws ClassNotFoundException {
//1.主动引用
Son son=new Son();
//反射也会产生主动引用
Class.forName("reflect.Son");
//不会产生类的引用的方法
System.out.println(Son.b);//通过子类调用父类的方法 4. 2
//这里不会执行子类
//常量不会引起父类和子类的初始化
System.out.println(Son.M); //5. 1
}
}
class Father{
static int b=2;
static {
System.out.println("父类被加载");//2.父类被加载
}
}
class Son extends Father{
static {
System.out.println("子类被加载");//3.子类被加载
}
static final int M=1; //常量池
}
//先执行Main,接着执行父类,再着执行子类,最后执行b和M