概念:使用括号 {…} 括着的多行代码。
分类:
- 局部代码块
语法:{…}
定义位置:方法之内
public class Demo {
public static void main(String[] args) {
{
int num = 10;
System.out.println(num);
}
}
}
作用:限制局部变量的生命周期和使用范围。
- 构造代码块
语法:{…}
定义位置:类中方法外
class Method{
{
System.out.println("执行构造代码块");
}
public Method(){
System.out.println("执行构造方法");
}
public Method(int x){
System.out.println("执行有参构造方法");
}
}
public class Demo {
public static void main(String[] args) {
Method method1 = new Method();
Method method2 = new Method(1);
}
}
输出结果:
结论:
- 构造代码块由于构造方法执行,执行一次构造方法就执行一次构造代码块。
作用:
- 将多个构造方法中相同代码,定义在构造代码块中,从而减少代码冗余。
创建对象流程:
- 静态代码块
语法:
static{
…
}
定义位置:类中,方法外
class Method{
static{
System.out.println("执行静态代码块");
}
}
public class Demo {
public static void main(String[] args) {
Method method1 = new Method();
Method method2 = new Method();
}
}
输出结果:
结论:
- 静态代码块,不会随着对象的多次创建而多次执行。
- 静态代码块,是在类的加载过程中执行的(类首次加载时执行一次)
作用:
- 静态属性赋值,环境变量赋值,设置默认值
类的加载流程:
执行顺序:
静态代码块---->构造代码块-------->局部代码块
同等级,父类的优先