2012-07-05 55 views
1

可能重复:
Static initializer in Java只有“静态”的方法签名是如何工作的?

我有几年的使用Java的经验,但我最近碰到的东西来看,我以前从来没见过:

public class Project{ 
... 
static{ 
    initDataTypeMapping(); 
} 
... 
} 

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

回答

6

这就是所谓的static initializer

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

另请参阅this question也。

+0

该代码只运行一次,对吧?代码第一次被引用? – FreakinOutMan 2012-07-05 18:09:11

相关问题