public class Test06 {static {System.out.println("Main类被加载");}public static void main(String[] args) throws ClassNotFoundException {// 1. 主动引用
// Son son = new Son();/* 结果Main类被加载父类被加载子类被加载*/// 反射也会产生主动引用
// Class.forName("reflection.Son");/* 结果Main类被加载父类被加载子类被加载*/// 不会产生类的引用的方法
// System.out.println(Son.b);/* 子类调用父类的静态的方法或变量,并不会加载子类Main类被加载父类被加载2*/// 数组
// Son[] array = new Son[5];/*Main类被加载*/// 常量不会引起父类和子类的初始化System.out.println(Son.M);/*Main类被加载1*/}
}
class Father{static int b = 2;static {System.out.println("父类被加载");}
}
class Son extends Father{static {System.out.println("子类被加载");m = 300;}static int m = 100;static final int M = 1;
}
https://www.bilibili.com/video/BV1p4411P7V3?p=10