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

该问题涉及:静态初始化代码块、构造代码块、构造方法 当涉及到继承时,按照如下顺序执行: 1、执行父类的静态代码块

    static {
        System.out.println("static A");
    }

输出:static A

2、执行子类的静态代码块

static {
        System.out.println("static B");
    }

输出:static B

3、执行父类的构造代码块

    {
        System.out.println("I’m A class");
    }

输出:I'm A class

4、执行父类的构造函数

    public HelloA() {
    }

输出:无

5、执行子类的构造代码块

    {
        System.out.println("I’m B class");
    }

输出:I'm B class

6、执行子类的构造函数

    public HelloB() {
    }