哪个线程初始化了静态字段和静态代码块?通过我的实验,我得出结论它和“调用”线程是相同的,即:
class Foo {
static {
System.err.printf("static {}: %s\n", Thread.currentThread());
}
}
public class Mini_StaticInitialization {
public static void main(final String[] args) {
System.err.printf("main: %s\n", Thread.currentThread());
new Foo();
}
}
输出
main: Thread[main,5,main]
static {}: Thread[main,5,main]
这是否有任何限制,还是总是这种情况?