类加载顺序

类加载顺序

  • 父类的静态变量和父类静态块赋值
  • 自身的静态变量赋值和自身的静态块赋值
  • 父类成员变量赋值和父类块赋值
  • 父类构造函数赋值
  • 自身成员变量赋值和自身块赋值
  • 自身构造函数赋值

注意

1.变量和代码块那个在前那个先加载
2.如果在加载静态变量或者代码块时触发了非静态的构造函数加载,则接着加载非静态的,再静态


public class A {

    static A aclass = new A();

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

    {
        System.out.println("2");
    }

    A() {
        System.out.println("3");
        System.out.println("a="+a+",b="+b);
    }

    public static void getA() {
        System.out.println("4");
    }

    public static void main(String[] args) {
        getA();
    }

    int a = 110;
    static int b = 112;

}


你可能感兴趣的:(java基础核心技术,加载)