Java中的初始化代码块用一对花括号{}标明,初始化代码块在构造方法之前执行。
普通代码块
一个简单的例子:
1 | public class Main { |
输出结果:
1 | Hello 初始化代码块 |
静态代码块
静态代码块用static{}来标明。静态代码块在普通代码块之前被调用,且仅在类初始化时,执行一次。
示例:
1 | public class Main { |
输出结果:
1 | 执行静态代码块 |
执行顺序
1.在没有继承关系的情况下,执行顺序为:静态代码块 (-> Main方法) -> 普通代码块 -> 构造方法。
2.若存在继承关系,以下面的代码为例:
1 | public class Main { |
执行结果:
1 | 父类静态代码块 |
从上面的例子可知,存在继承的情况下,执行顺序为:
父类静态代码块 -> 子类静态代码块 -> 父类普通代码块 -> 父类构造方法 -> 子类普通代码块 -> 子类构造方法