在同一个类中没有继承关系:
静态块:用static声明,JVM加载类时执行,且执行一次
构造块:类中直接用{}定义,每次创建对象时执行
执行顺序优先级:静态块>静态方法>构造块>构造方法
PS:静态成员变量和静态代码块的执行顺序是谁在前面谁先加载
存在继承关系时:
1.父类静态成员变量和静态代码块按照初始化的顺序执行
2.子类静态成员变量和静态代码块按照初始化的顺序执行
3.父类非静态对象和非静态代码块
4.执行父类的构造函数。
5、初始化子类的成员变量。
6、构造代码块创建对象时执行。
7、执行子类的构造函数。