我试图理解这段代码。当我运行此代码时,输出将为 Roger。msg不是一个静态变量,并且在类级别上应该打印Moore,对吗?
编辑:我允许了一段时间的睡眠,以便子线程完成其工作。它还打印printing..,但仍然没有改变。
public class Test2 {
private static String msg = "Roger";
static {
new Thread(new Runnable() {
public void run() {
System.out.println("printing..");
msg += "Moore";
}
}).start();
}
static {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
public static void main(String argv[]) {
System.out.println(msg);
}
}