代码块又称为初始化块,属于类中的成员[即是类的一部分],类似于方法,将逻辑语句封装在方法体中,通过{}包围起来;
但和方法不同,不用对象显示调用,而是加载类时,或创建对象时,隐式调用;
注意:
①使用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中一种用于限制变量作用域、控制变量生命周期以及实现特定逻辑功能的语法结构。普通代码块用于限制变量作用域,静态代码块用于初始化静态成员变量或执行静态操作,同步代码块用于实现多线程的同步。