静态代码块
在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块。静态代码块的语法如下:
static {
...
}
当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块也只执行一次。在程序中,通常会使用静态代码块来对类的成员变量进行初始化。接下来通过一个案例来了解静态代码块的使用,如文件1所示。
文件1 Example14.java
1 class Person{
1 static {
2 System.out.println("执行了Person类中的静态代码块");
3 }
4 }
5 public class Example14{
6 static{
7 System.out.println("执行了测试类中的静态代码块");
8 }
9 public static void main(String[] args){
10 // 实例化2个Person对象
11 Person p1 = new Person();
12 Person p2 = new Person();
13 }
14 }
运行结果如图1所示。
图1 运行结果
从图1可以看出,程序中的两段静态代码块都执行了。使用Eclipse运行文件1中的程序后,Java虚拟机首先会加载类Example14,在加载类的同时就会执行该类的静态代码块,紧接着会调用main()方法。在main()方法中创建了两个Person对象,但在两次实例化对象的过程中,静态代码块中的内容只输出了一次,这就说明静态代码块在类第一次使用时才会被加载,并且只会加载一次。