相同点:都是在JVM加载类时且在构造方法以前执行,在类中均可以定义多个。 方法
区别 :静态块只执行一次,而非静态块在每一次new或者加载的时候都会执行一次。 new
单个类内的执行顺序 :静态块 -> 非静态块 -> 构造方法
子类 extended 父类顺序 :父类静态块 -> 子类静态块 -> 父类非静态块 -> 父类构造方法 -> 子类非静态块 -> 子类构造方法