▪ 代码块作用:用来初始化类、对象的信息
前提:某类需要先存在,即虚拟机jvm把某个类从硬盘上加载到内存【类加载到内存】
执行静态代码块,加载静态成员属性、静态方法和普通方法。
如果有静态成员变量,也会执行,至于和静态代码块执行先后顺序看代码位置。
如果有普通成员变量,也会执行,至于和构造代码块执行先后顺序看代码位置。
如果有静态成员变量,也会执行,至于和静态代码块执行先后顺序看代码位置。
父类静态代码块—>父类静态变量–>子类静态代码块–>子类静态变量
或者是:父类静态变量—>父类静态代码块–>子类静态变量–>子类静态代码块
如果有普通成员变量,也会执行,至于和构造代码块执行先后顺序看代码位置。
父类代码块—>父类普通成员变量–>父类构造函数–>子类代码块–>子类普通成员变量–>子类构造器
或者是:父类普通成员变量–>父类代码块—>父类构造函数–>子类普通成员变量–>子类代码块–>子类构造器