static 与 non-static 的区别

相同点:都是在JVM加载类时且在构造方法以前执行,在类中均可以定义多个。 方法

区别 :静态块只执行一次,而非静态块在每一次new或者加载的时候都会执行一次。 new

单个类内的执行顺序 :静态块 -> 非静态块 -> 构造方法

子类 extended 父类顺序 :父类静态块 -> 子类静态块 -> 父类非静态块 -> 父类构造方法 -> 子类非静态块 -> 子类构造方法