我有一段简单的 Java 代码:
class A {
static {
int x=3;
int y;
int yy=1234;
int yyy;y=1;int zy=x;
System.out.println("x: "+x);
}
}
我希望它打印“x:1234”。
javac A.java && java A
x: 3
Exception in thread "main" java.lang.NoSuchMethodError: main
但它会打印“x: 3”。为什么?这是另一种我不知道的优化类型吗?我认为 volatile 仅在您有多个线程时才重要?我尝试将所有变量设置为 volatile,甚至在它们周围加锁,但没有运气。有人告诉我应该在课堂上设置 strictfp,但那里也没有运气。