1. 初始化块(代码块)的作用
对 Java 对象进行初始化。
2. 程序的执行顺序
- 声明成员变量的默认值;
- 显式初始化,多个初始化块被一次执行(先static代码块后普通代码块,同级别下按先后顺序执行)。
- 构造器再对成员进行赋值操作。
3. 非静态代码块和静态代码块
3.1. 非静态代码块
非静态代码块没有 static 修饰。
1 | { |
- 可以有输出语句;
- 可以对类的静态和非静态属性声明进行初始化操作;
- 可以调用静态和非静态的属性或方法;
- 若有多个非静态的代码块,按照从上到下的顺序依次执行;
- 每次创建对象,都会执行一次;
- 先于构造器执行。
3.2. 静态代码块
静态代码块有 static 修饰。
1 | static { |
- 可以有输出语句;
- 可以对类的静态属性声明进行初始化操作;
- 可以调用静态的属性或方法;
- 多有多个静态代码块,按照从上到下的顺序依次执行;
- 静态代码块只执行一次;
- 先于非静态代码块执行。
- static 代码块多用于对 static 属性进行初始化。
4. 匿名内部类
1 | // public class Person { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GuKaifeng's Blog!
评论(延迟加载 / 需要可访问 GitHub Issues)