static之静态初始化块

Posted 悟知清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static之静态初始化块相关的知识,希望对你有一定的参考价值。

 

static之静态初始化块

     所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:
      父类的静态初始化块
      子类的静态初始化块
      父类的初始化块
      父类的构造函数
      子类的初始化块
      子类的构造函数
      也就是说程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

比如下面的代码:

运行结果:

 

 


需要特别注意:
1)静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
2)非静态初始化块的代码会在类构造函数之前执行。使用时应当养成把初始化块写在构造函数之前的习惯,便于调试。

参考:

  • http://www.cnblogs.com/BlackStorm/p/5699965.html
  • 慕课网 Java入门第二季

                                     

以上是关于static之静态初始化块的主要内容,如果未能解决你的问题,请参考以下文章

java第五章:面向对象(oop)之 static关键字

Java之代码块

类加载之初始化(包括静态代码块讲解)

Java面向对象 类的成员之代码块的详解

Java基础之static关键字

静态-static