Java без имени статический метод - PullRequest
24 голосов
/ 03 декабря 2009

Что это?

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

Распечатает: Привет мир

Я не совсем понимаю, что это за метод, который представляет собой статический код.

Ответы [ 2 ]

51 голосов
/ 03 декабря 2009

Это называется «блок статической инициализации».

Он запускается при первой загрузке класса; только один раз.

Например, конструктор будет запускаться каждый раз, когда создается экземпляр класса; статический блок запускается только один раз, когда он статически загружается загрузчиком VM / Class.

7 голосов
/ 03 декабря 2009

Я думаю, стоит отметить, что статический блок будет запускаться ровно один раз каждый раз, когда загрузчик классов загружает класс. Это означает, что если у вас более одного загрузчика классов, блок может выполняться более одного раза.

...