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