分类:
构造代码块(位于成员变量位置,类内、方法外)
{
语句体
}
局部代码块(位于局部变量位置,方法内)
{
语句体
}
静态代码块
static {
语句体
}
用途:
用于类属性的初始化,只被执行一次,避免实体 bean 中的方法重复调用问题
思考1:
思考2:
思考3:
思考4:
思考1答案:20000000000
思考2答案:20000000000
思考3答案:10000000000
思考3答案:30000000000
结论:
- Java 编译器编译一个 Java 源文件的时候,会把成员变量的声明语句提前至类的最前端
- 成员变量的初始化工作,其实都是在构造函数中执行的
- Java 编译器编译后,构造代码块的语句体会被移动到构造函数(的最前端)中执行,构造函数中的语句体在构造代码块的语句体执行完毕后再执行,即构造代码块的代码优先于构造函数中的代码执行
- 成员变量的显示初始化与构造代码块的代码是按照当前代码的先后顺序执行的