代码块
使用 {}
括起来的代码称为代码块。根据它出现在Java文件中的位置的不同:
- 局部代码块
- 构造代码块
- 静态代码块
- 同步代码块
1.局部代码块
出现在方法体中。
作用: 限定变量的生命周期,及早释放,提高内存利用率。
public static void main(String[] args) {
int a = 10;
//想定义代码块,就用大括号
{
//内层作用域,可以看到外层已经定义的变量
// int a=20;//不允许
int b =20;
}
//当脱离了作用域,局部代码块中定义的那些变量都被销毁
int b = 20;//允许的
}
2.构造代码块
出现在类中、方法外(成员的位置)
作用:在对象创建过程中,就会执行构造代码块中的代码。可以将一些通用的构造逻辑写在这里。
- 构造代码块会先于构造方法的执行而执行
- 当直接对成员变量赋值时,此赋值操作会先于构造代码块的执行而执行。
3.静态代码块
出现在类中、方法外(成员位置),只不过是添加了 static
修饰符。
作用: 当此类被JVM加载的时候,就会执行静态代码块中的逻辑。
所以,适合放置一些全局的初始化逻辑。
static{
}
- 静态代码块,在程序执行期间有且仅执行一次。
- 静态代码块中仅能访问静态的成员(静态变量、静态的方法)
- 构造代码块中既可以访问静态的内容,也可以访问成员变量和成员方法。