美文网首页
新建对象时,构造方法、变量、代码块执行顺序

新建对象时,构造方法、变量、代码块执行顺序

作者: mua马 | 来源:发表于2021-01-07 15:25 被阅读0次

    场景一:没有父类,或者不关心父类

    静态成员(静态代码块、静态变量,按代码顺序执行)
    非静态成员(非静态代码块、非静态变量,按代码顺序执行)
    构造方法

    场景二:有父类
    父类静态成员(静态代码块、静态变量,按代码顺序执行)
    子类静态成员(同上)
    父类非静态成员(非静态代码块、非静态变量,按代码顺序执行)
    父类构造方法
    子类非静态成员(非静态代码块、非静态变量,按代码顺序执行)
    子类构造方法

    场景三:不关心父类,且静态成员中调用了构造方法
    假设静态成员最多可分解为三句代码,按代码顺序分为1、2、3,其中2调用了构造方法,则执行顺序为:

    静态成员1
    静态成员2
    非静态成员(非静态代码块、非静态变量,按代码顺序执行)
    构造方法
    静态成员3

    注意
    1、静态成员只在类初始化时执行一次
    2、每创建一个对象,非静态成员和构造方法都会执行一次

    Java类的加载机制(类加载和初始化顺序)

    相关文章

      网友评论

          本文标题:新建对象时,构造方法、变量、代码块执行顺序

          本文链接:https://www.haomeiwen.com/subject/alpzoktx.html