静态代码块,构造函数,代码块执行顺序

构造函数、静态变量、代码块执行顺序

在创建一个对象的时候, 会发生如下的过程:

  • 查找父类是否被加载过, 没有加载则进行加载, 这时父类静态代码块随之调用

static {
....
}

  • 加载子类 静态代码块 随之调用

  • 调用父类的 普通代码块

  • 调用父类的构造方法

  • 调用子类的 普通代码块

{
//反编译class文件, 会发现其实普通代码块的代码被合并到构造方法中了. 但是在构造方法的前面执行了.
}

  • 调用子类的构造方法

个人建议: 所有的静态变量要定义在静态代码块的前面.

为什么呢? 因为静态变量和静态代码块的执行顺序是根据代码编写的顺序进行执行的.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。