Java的初始化块

本文包含如下内容:

  1. 使用初始化块
  2. 初始化块和构造器
  3. 静态初始化块

使用初始化块

Java的初始化块
当创建Java对象时,系统总是先调用类里定义的初始化块,如果一个类里定义了2个普通初始化块,前面定义的初始化块先执行,后面的后执行。
Java的初始化块
虽然Java运行定义多个初始化块,但是没有必要,可以把多个初始化块合并成一个,使程序更简洁。
Java的初始化块

初始化块和构造器

Java的初始化块
注意:
Java的初始化块
初始化块的执行方式:
Java的初始化块

静态初始化块

如果定义初始化块时使用了static修饰符,那么该初始化块就变成了静态初始化块,也称类初始化块

普通初始化块负责对对象执行初始化,类初始化块对类进行初始化。
静态初始化块在类初始化阶段执行,先于普通初始化块执行
静态初始化块不能对实例变量进行初始化处理。
Java的初始化块
执行方式:
Java的初始化块
下面程序中有三个类:Root、Mid、Leaf,进行静态初始化块和普通初始化块演示 :
Java的初始化块
Java的初始化块
上面三个类的继承关系以及运行情况如下:
Java的初始化块
Java系统加载并初始化某个类时,总是保证该类的所有父类(包括直接父类和间接父类)全部加载并初始化。
静态初始化块和声明静态成员变量时所指定的初始值都是该类的初始化代码,其执行顺序与源程序中的排列顺序相同。
Java的初始化块