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 @   iforeverhz  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示