美文网首页
Java初始化顺序

Java初始化顺序

作者: 姜殷俊 | 来源:发表于2017-07-30 18:47 被阅读0次

1  无继承情况下的Java初始化顺序:

输出结果为:

由此可以得出结论:

a静态成员变量首先初始化(注意,Static可以看做一个静态成员,其执行顺序和其在类中申明的顺序有关)

b 普通成员初始化

c 执行构造函数。

对于静态成员(static块可以看成普通的一个静态成员,其并不一定在类初始化时首先执行)和普通成员,其初始化顺序只与其在类定义中的顺序有关,和其他因素无关。

例如下面的例子:

运行结果为

static 块 1  执行

静态成员staticSam1初始化

静态成员staticSam2初始化

static 块 2  执行

--------静态成员

sam1成员初始化

sam2成员初始化

--------普通成员

Test默认构造函数被调用

--------构造函数

2 Java继承情况下的初始化顺序:

运行结果:

父类 static 块 1  执行

父类 静态成员staticSam1初始化

父类 静态成员staticSam2初始化

父类 static 块 2  执行

--------父类静态成员初始化

子类 静态成员staticSamSub初始化

子类 静态成员staticSamSub1初始化

子类 static 块  执行

-------子类静态成员初始化

父类 sam1成员初始化

父类 sam2成员初始化

父类 Test默认构造函数被调用

-------父类普通成员初始化和构造函数执行

子类 sam1成员初始化

子类 sam2成员初始化

子类 TestSub 默认构造函数被调用

-------父类普通成员初始化和构造函数执行

由此得出Java初始化顺序结论:

1 继承体系的所有静态成员初始化(先父类,后子类)

2 父类初始化完成(普通成员的初始化-->构造函数的调用)

3 子类初始化(普通成员-->构造函数)

相关文章

  • Java初始化顺序

    layout: post title: Java初始化顺序 categories: JAVA descriptio...

  • Kotlin笔记

    Kotlin与Java的差异 1. 对象的初始化时的顺序 在java中,初始化代码块 -> 构造函数 在kotli...

  • Java初始化顺序

    Java初始化的顺序如下: 静态变量和静态初始化块之间没有先后关系, 遵循代码的先后顺序, 写在前面就先初始化, ...

  • 设计模式——工厂,策略,建造者

    Java 类初始化顺序基本分为以下几种:静态块,初始化块,静态方法,构造函数块,静态变量,成员变量对于块顺序,静态...

  • Java初始化顺序

    1. 类的内部: [ddd](dddddddddddddd) 静态变量(如果加载该类的class文件,加载时即初...

  • Java初始化顺序

    Java初始化顺序:①类变量、类方法>②(父类代码)>③实例变量>④构造器当一个类要实例化时,static变量和方...

  • Java初始化顺序

    1 无继承情况下的Java初始化顺序: 输出结果为: 由此可以得出结论: a静态成员变量首先初始化(注意,Stat...

  • java初始化顺序

    存在继承关系时 父类static块和静态成员变量,按顺序初始化 子类static块和静态成员变量,按顺序初始化 父...

  • java初始化顺序

    一、知识点: 1. 父类静态变量; 2.子类静态变量; 3.父类成员变量和构造代码块; 4.父类构造方法; 5.父...

  • JAVA初始化顺序

    Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器) 大家在去参加面试的时候,经常会遇到这样...

网友评论

      本文标题:Java初始化顺序

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