1、代码块:在类中或者方法中,使用{}括起来的一段代码,就称它是代码块。
代码块分为:局部代码块、初始化代码块、静态代码块三种
2、局部代码块:直接定义在方法内的代码块;一般结合if,while ,for等关键字一起使用,表示一块代码区域
void save() {
{
// 代码块当中 定义的变量,我们称它是局部变量
int a = 10;
System.out.println(a);
}
if(true)
{
}
}
3、初始化代码块:直接定义在类当中的代码块;初始化代码块本质上放到构造方法当中执行的,因此每次创建对象的时候,都会执行初始化代码块; 可以通过反编译查看。
public class Test {
// 初始化代码块是每创建一个对象,就会调用一次
{
int b = 10;
System.out.println("初始化代码执行了");
}
public static void main(String[] args) {
System.out.println("main执行了");
}
}
4、静态代码块:在初始化代码块前面加上一个static ,此代码块称为静态代码块。静态代码块在加载字节码时就会自动调用,在主方法之前执行的。只执行一次。静态代码块随着字节码加载也加载进了JVM 此时main方法还没有执行,因为方法需要JVM调用。 先把字节码加载进JVM,JVM再去调用main方法 用来做一次性初始化操作。
public class Test {
//静态代码块随着字节码加载也加载进了JVM;此时main方法还没有执行,因为方法需要JVM调用。先把字节码加载进JVM,JVM再去调用main方法用来做一次性初始化操作。静态代码块只执行一次。
static {
System.out.println("静态代码块执行了");
}
public static void main(String[] args) {
System.out.println("main执行了");
}
}