packagecom.reflection;//测试类在什么情况下会初始化publicclassDemo04{static{System.out.println("main 被加载");}publicstaticvoidmain(String[] args)throwsClassNotFoundException{//主动引用// Son son = new Son();//通过反射测试类的初始化// Class.forName("com.reflection.Son");//通过子类调用父类的静态方法不对导致子类被初始化// System.out.println(Son.b);//定义数组类的使用不会导致该类的初始化Son[] sons =newSon[5];//及开辟空间,不造成其他的动作发生,只有main会被初始化//引用常量不会导致类的初始化System.out.println(Son.M);}}//创建一个静态的父类class father{//静态代码块,验证是否父类会被初始化staticint b=2;static{System.out.println("父类被初始化了");}}classSonextends father{//静态代码块,验证是否子类会被初始化static{System.out.println("子类被初始化了");
m=300;}staticint m=100;//设置静态常量staticfinalintM=1;}