Java类初始化顺序小结

  • 第一种情况(单一类)

    c0a81021-30eb-43d4-be1e-b95370cf0015

    测试结果

    静态变量
    静态初始化块
    变量
    初始化块
    构造器
    变量
    初始化块
    构造器
    

    总结:类初始化顺序:静态变量->静态代码块->普通变量->初始化块(普通代码块)->构造器,并且静态变量和静态代码块只加载一次

  • 第二种情况(继承关系)

    ed0cabbf-7361-4b89-80be-c77daf8159d9 411c8c4c-8cbb-4faf-ac88-06f74da6363e

    测试结果

    父类--静态变量
    父类--静态初始化块
    子类--静态变量
    子类--静态初始化块
    子类main方法
    父类--变量
    父类--初始化块
    父类--构造器
    i=9, j=0
    子类--变量
    子类--初始化块
    子类--构造器
    i=9,j=20
    

    总结:类初始化顺序:父类(静态变量->静态代码块)->子类类(静态变量->静态代码块)->父类(普通变量->初始化块(普通代码块)->构造器)->子类类(普通变量->初始化块(普通代码块)->构造器)

posted @ 2022-05-11 10:50  iforeverhz  阅读(45)  评论(0)    收藏  举报