这种"静态"是什么意思,为什么会这样呢?

cod*_*441 3 java

public class tt {
static{
    System.out.println("class tt");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我第一次碰到它,我想知道它是什么以及它用于什么

Sto*_*ica 5

它是该类的静态初始化器.加载类时,将运行静态初始化程序.它就像构造函数,但对于类而不是单个对象.

多个静态初始化程序可以出现在类中,也可以出现在静态变量的直接初始化程序中.这些将按照声明的顺序合并为一个初始化程序.例如,每当加载类时,以下内容都会将"foo"打印到stdout(通常每个应用程序一次).

public class Foo {

  static String a;

  static {
    a = "foo";
  }

  static String b = a;

  static {
    System.println(b);
  }

}
Run Code Online (Sandbox Code Playgroud)