
16 Feb
2018
Забавная история. Привык что в джаве статическая инициализация класса происходит в первую очередь при его загрузке. Однако не всё так просто — до статической инициализации происходит инициализация полей enum'а:
enum MyEnum {
INSTANCE;
static {
System.out.println("static");
}
MyEnum() {
System.out.println("c'tor");
}
}
public class Main {
public static void main(final String[] args) {
System.out.println("main");
System.out.println(MyEnum.INSTANCE);
}
}
Печатает:
main
c'tor
static
INSTANCE