我有一段简单的Java代码:
class A {
static {
int x=3;
int y?;
int yy=1234;
int yyy?;y?=1;int z?y=x;
System.out.println("x: "+x);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望它打印"x:1234".
javac A.java && java A
x: 3
Exception in thread "main" java.lang.NoSuchMethodError: main
Run Code Online (Sandbox Code Playgroud)
但相反它打印"x:3".为什么?这是另一种我不知道的优化类型吗?我认为如果你有多个线程,volatile只会很重要吗?我尝试将所有变量设置为volatile,甚至将锁定放在它们周围,但没有运气.有人告诉我,我应该在课堂上设置strictfp,但也没有运气.