美文网首页
java类的初始化顺序

java类的初始化顺序

作者: 薛定谔_810a | 来源:发表于2019-02-17 16:12 被阅读0次

先说结论:

第一等级:父类静态方法、父类静态变量

第二等级:子类静态方法、子类静态变量

第三等级:父类普通代码块、父类普通变量

第四等级:父类构造函数

第五等级:子类普通代码块、子类普通变量

第六等级:子类构造函数

为了结构清晰,共建立四个相关的测试类

第一个为 变量的打印类:

第二个为父类,父类中依次包含 :

1.静态方法     2.静态成员变量   3.普通方法   4.普通成员变量  5.构造函数

  第三个为子类,继承父类:

最后一个实现主类:

打印结果:

更换父类子类各元素位置,如下图:

打印结果:

根据结果分析:

        将java类的初始化顺序分为六个等级,第一等级最先初始化,直至第六等级类初始化完成,同一等级内的元素的初始化顺序更具元素在类中的相对位置而定(如:第一等级的静态方法在类中出现的顺序大于父类静态变量,则父类静态方法的初始化顺序优于父类静态方法,反之,则父类静态变量由于父类静态方法):

第一等级:父类静态方法、父类静态变量

第二等级:子类静态方法、子类静态变量

第三等级:父类普通代码块、父类普通变量

第四等级:父类构造函数

第五等级:子类普通代码块、子类普通变量

第六等级:子类构造函数

另附:静态成员方法与静态变量无论父子类,均只在第一次加载时执行(因静态方法与变量存放于jvm的静态区中)

相关文章

  • 类初始化和加载过程

    一、对象的初始化顺序: java类加载器加载类的顺序:http://blog.csdn.net/crazycode...

  • 构造器内部的多态方法的行为

    上一篇 :Java类初始化顺序 上一节我们简单总结了类的初始化顺序。父类(静态变量、静态初始化块)>子类(静态变量...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • Java类的初始化顺序

    Java类的初始化顺序 (静态变量、静态代码块)> 类里的 main()(如果有的话) > (变量、初始化块) >...

  • Java类加载与初始化

    今天复习了一下java类加载时的初始化顺序,先记录一下心得,代码后续补上。 类加载时的初始化顺序 1、一般来说,类...

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • java构造器初始化与清理

    java构造器初始化先后顺序: 若此类继承于某基类,则先初始化基类,以此类推,找到最基本的父类,先对基类进行初始化...

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

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

  • java 类初始化 顺序

    Java 类初始化介绍 java语言在使用过程中最先开始就是初始化,在工作中如果遇到什么问题需 要定位往往到最后也...

  • java类初始化顺序

    1.静态代码块,静态变量,按代码顺序先后执行.2.构造代码块,成员变量,按代码顺序先后执行.3.先执行构造块或成员...

网友评论

      本文标题:java类的初始化顺序

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