一、局部代码块
示例:
class Demo{
public Demo(){
}
public void test(){
{
int y = 2;
y++;
System.out.println("局部代码块");
}
}
}
- 大括号括起来的一段代码,位于局部位置上,如:位于函数内部;
- 定义在局部代码块内的变量只在当前代码块内可见,即变量的作用域在当前代码块内;
二、静态代码块
示例:
class Demo{
public Demo(){
}
static{
System.out.println("静态代码块");
}
}
特点:
- 大括号括起来的一段代码,位于类内,用static关键字修饰;
- 静态代码块随着类的加载而加载;
三、构造代码块
示例:
class Demo{
public Demo(){
}
{
System.out.println("构造代码块");
}
}
特点:
- 大括号括起来的一段代码,位于类内;
- 构造代码块的执行时机为当前类的构造函数执行完super()之后,和执行构造函数自定义内容之前;(可参考Java对象初始化过程例子分析(一))