只有"静态"的方法签名如何工作?

Fre*_*Man 1 java static

可能重复:
Java中的静态初始化程序

我有几年的Java经验,但我最近遇到了一些我以前从未见过的东西:

public class Project{
...
static{
  initDataTypeMapping();
}
...
}
Run Code Online (Sandbox Code Playgroud)

这种方法签名如何工作?事实上这在技术上是一种方法吗?我想知道为什么不会简单地将方法调用initDataTypeMapping()放在构造函数中.只是想增加我的理解,所以我不会弄乱一些东西.谢谢!

mat*_*t b 6

这称为静态初始化程序.

static { }当类首次由类加载器加载时,块中的代码运行(通常,但并非总是如此,当引用该类的代码首次加载/执行时),并保证在线程安全中运行方式.

也看到这个问题.