• 构造方法、成员变量初始化以及静态成员变量三者的初始化顺序?


    在Java中,类的实例化过程中,构造方法、成员变量初始化以及静态成员变量的初始化按照一定的顺序进行,主要有以下几个步骤:

    1. 静态成员变量初始化: 在类加载的过程中,首先会执行静态成员变量的初始化。静态成员变量属于类级别的,只会初始化一次,不论是否创建了类的实例。

    2. 静态初始化块(静态代码块): 如果类中包含静态初始化块,它会在静态成员变量初始化之后执行。静态初始化块用于在类加载时执行一些额外的静态初始化操作。

    3. 成员变量初始化: 在对象创建时,会先进行成员变量的初始化。这包括了类级别的静态成员变量和实例级别的成员变量。成员变量初始化的顺序是根据它们在类中的声明顺序来决定的。

    4. 构造方法: 最后,在成员变量初始化完成后,会调用构造方法来完成对象的初始化。构造方法可以进行一些对象级别的初始化工作,通常是通过调用构造方法来创建对象。

    需要注意的是,如果类继承了其他类,初始化顺序还会受到父类构造方法和静态初始化块的影响。具体来说,父类的静态成员变量初始化、父类的静态初始化块、父类的成员变量初始化、父类的构造方法会在子类的对应部分之前执行。

    总结一下,初始化顺序如下:

    1. 父类的静态成员变量初始化和静态初始化块(按照继承层次从上到下)。
    2. 子类的静态成员变量初始化和静态初始化块(按照继承层次从上到下)。
    3. 父类的成员变量初始化(按照声明顺序)。
    4. 父类的构造方法。
    5. 子类的成员变量初始化(按照声明顺序)。
    6. 子类的构造方法。

    这些初始化步骤确保了对象在创建时的正确初始化和状态设置。

  • 相关阅读:
    模拟网络流之dp类:1107T3
    WordPress增加SSL证书实现HTTPS协议访问
    华为机试 - 发广播
    C语言入门这一篇就够了-肝(中)
    鼎盛合:adc芯片的五种结构
    10 年国内算法大神经验总结的数据结构与算法详解终于学完
    【k8s】YAML语言基础
    前端Vue怎么获取登录的用户名或用户id
    设备驱动号 绑定文件描述符
    echart3D地图
  • 原文地址:https://blog.csdn.net/qq_43116031/article/details/133621373