静态(static)代码块、构造代码块、构造函数、父类子类执行顺序

静态代码块:static修饰的代码块。

在类加载-初始化的时候进行,主要目的是给变量赋予初始值

构造代码块:直接在类中定义且没有加static关键字的代码块称为构造代码块。

java会把构造代码块放到构造方法前面,用于实例化一些共有的实例变量,减少代码量

构造方法:与类同名,没有返回值类型的方法

用于实例化变量

父类和子类:对子类的调用会导致其对父类的主动调用,所以尽管实例化的是子类,但也会导致父类的初始化和实例化,且父类先于子类执行。

参考实例:

public class HelloB extends HelloA {

    public HelloB() {

    }

    {
System.out.println("I’m B class");
}
static {
System.out.println("static B");
} public static void main(String[] args) {
new HelloB();
}
} class HelloA {
public HelloA() {
} {
System.out.println("I’m A class");
}
static {
System.out.println("static A");
}
}

输出结果:

static A
static B
I’m A class
I’m B class

上一篇:关于java中构造方法、实例初始化、静态初始化执行顺序


下一篇:C# 静态构造函数,静态变量执行顺序(升华版)