27

这是什么?

public class ABC {
   public ABC() {
         System.out.println("world");
   }
   static {
         System.out.println("hello");
   }
}

将打印:你好世界

我不太明白这一点,或者静态代码是一种什么样的方法。

4

2 回答 2

59

它被称为“静态初始化块”。

它在类首次加载时运行;只有一次。

例如,每次实例化类时都会运行一个构造函数;静态块仅在 VM/类加载器首次静态加载时运行一次。

于 2009-12-02T22:15:38.517 回答
10

我认为值得注意的是,每次类加载器加载一个类时,静态块将只运行一次。这意味着如果您有多个类加载器,则该块可以执行多次。

于 2009-12-02T23:12:58.720 回答