Java的初始化块
本文包含如下内容:
- 使用初始化块
- 初始化块和构造器
- 静态初始化块
使用初始化块
当创建Java对象时,系统总是先调用类里定义的初始化块,如果一个类里定义了2个普通初始化块,前面定义的初始化块先执行,后面的后执行。
虽然Java运行定义多个初始化块,但是没有必要,可以把多个初始化块合并成一个,使程序更简洁。
初始化块和构造器
注意:
初始化块的执行方式:
静态初始化块
如果定义初始化块时使用了static修饰符,那么该初始化块就变成了静态初始化块,也称类初始化块。
普通初始化块负责对对象执行初始化,类初始化块对类进行初始化。
静态初始化块在类初始化阶段执行,先于普通初始化块执行
静态初始化块不能对实例变量进行初始化处理。
执行方式:
下面程序中有三个类:Root、Mid、Leaf,进行静态初始化块和普通初始化块演示 :
上面三个类的继承关系以及运行情况如下:
Java系统加载并初始化某个类时,总是保证该类的所有父类(包括直接父类和间接父类)全部加载并初始化。
静态初始化块和声明静态成员变量时所指定的初始值都是该类的初始化代码,其执行顺序与源程序中的排列顺序相同。