静态(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

原文地址:https://www.cnblogs.com/lashou/p/6069287.html