块 block
- 作用域是以块为单位,即{ }中的内容
1.用法
- { }定义在方法中
- 表示一个局部代码块
- 执行时机:在调用方法的时候
public class Test01 {
static int a=10;
public static void main(String[] args) {
{
int a = 15;
System.out.println(a); // 15
}
System.out.println(a); //10
}
}
- { }定义在类种方法外
- 表示一个构造块
- 执行时机:在创建对象的时候,先找构造器,如果有构造块,优先执行构造块的内容,再执行构造器中的内容
public class Test02
public static void main(){
Test02 test=new Test02();
}
//构造块
{
System.out.println("我是构造块...");
}
}
- static{ }定义在类种方法外
- 表示一个静态块
- 执行时机:第一次类加载完成后
public class Test03{
public static void main(){
}
static{
System.out.println("我是静态块");
}
}
2.注意
- 构造块中的代码先于构造器代码执行,编译时会被变编译到构造器代码的最上面,如果有多个构造块,从上倒下以此执行
- 第一次类加载后执行,并且只执行一次,如果存在多个静态块,从上倒下依次执行
- 静态块先于之方法执行
3.执行顺序
- 静态块–>主方法–>构造块–>构造器代码