1.父类的静态代码块和静态属性优先级一样,按照定义顺序执行

2.子类的静态代码块和静态属性优先级一样,按照定义顺序执行

3.父类的普通代码块和普通属性优先级一样,按照定义顺序执行

4.父类的构造方法

5.子类的普通代码块和普通属性优先级一样,按照定义顺序执行

6.子类的构造方法

 

package com.leo.codeblock;

public class CodeBlock {
    public static void main(String[] args) {
        A a = new A();
    }
}

class A{
    private int n2 = getN2();
    // 静态属性的初始化
    {
        System.out.println("普通代码块");
    }
    private static int n1 = getN1();
    // 静态代码块
    static {
        System.out.println("A 静态代码块01");
    }

    public static int getN1() {
        System.out.println("geN1被调用");
        return 100;
    }

    public int getN2() {
        System.out.println("getN2被调用");
        return 200;
    }
}