代码块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过{}包围起来;
但和方法不同,不用对象显示调用,而是加载类时,或创建对象时,隐式调用;
注意:
①使用static修饰的代码块,叫做静态代码块;没有static修饰的,叫做普通代码块;
②修饰符要写的话,只能是static.
③分号可以写也可以不写;
Java中的代码块是一段被大括号包围的代码片段,它可以用来限制变量的作用域、控制变量的生命周期以及实现特定的逻辑功能。Java中有三种类型的代码块:普通代码块、静态代码块和同步代码块。
-
普通代码块: 普通代码块也称为局部代码块,它位于方法内部或语句内部,用于限制变量的作用域。普通代码块在执行到该代码块时会被执行,执行完毕后其中定义的变量会被销毁。普通代码块可以在任何地方定义,可以嵌套在其他代码块中。
public class CodeBlockExample {
public static void main(String[] args) {
// 普通代码块
{
int x = 10;
System.out.println(x);
}
// x在此处不可见
}
}
-
静态代码块: 静态代码块用关键字
static
修饰,它在类加载时执行,且只执行一次。静态代码块主要用于初始化静态成员变量或执行一些静态操作。静态代码块在类加载时按照定义的顺序执行。
示例:
public class CodeBlockExample {
static {
System.out.println("静态代码块1");
}
static {
System.out.println("静态代码块2");
}
public static void main(String[] args) {
// 静态代码块在类加载时执行
CodeBlockExample obj = new CodeBlockExample();
}
}
输出结果如下:
静态代码块1
静态代码块2
-
同步代码块: 同步代码块用关键字
synchronized
修饰,它用于实现多线程的同步。同步代码块可以指定一个对象作为锁,只有获得锁的线程才能执行该代码块,其他线程需要等待。同步代码块可以用来解决线程安全问题。
示例:
public class CodeBlockExample {
public void method() {
synchronized (this) {
// 同步代码块
// ...
}
}
}
总结: 代码块是Java中一种用于限制变量作用域、控制变量生命周期以及实现特定逻辑功能的语法结构。普通代码块用于限制变量作用域,静态代码块用于初始化静态成员变量或执行静态操作,同步代码块用于实现多线程的同步。