初始化块(代码块)
初始化块(代码块)的作用:
- 对 Java 对象进行初始化
程序执行的顺序:
- 声明成员变量的默认值。
- 显示初始化、多个初始化块依次被执行。(同级别下按先后顺序执行)
- 构造器在对成员进行赋值操作。
-
在程序运行过程中,非静态代码块每次 new 对象都要重新执行,而静态代码块只执行一次。
-
在匿名内部类中,代码块用来代替构造方法。
非静态代码块(没有 static)
- 可以有输出语句
- 可以对类的属性声明进行初始化操作
- 可以调用静态的非静态的变量或方法
- 若有多个非静态的代码块,那么按照从上到下的顺序依次执行
- 每次创建对象的时候,都会执行一次
静态代码块(有 static)
在实际开发过程中,静态代码块用在初始化类的静态属性(static类型的属性)。
- 可以有输出语句
- 可以对类的属性声明进行初始化操作
- 不可以对非静态的属性初始化。就是不可以调用非静态的属性和方法
- 若有多个静态的代码块,那么按照从上到下的顺序依次执行
- 静态代码块的执行要先于非静态代码块
- 静态代码块只执行一次