假设有三个类,名为Tester_1、Tester_2、Tester_3。它们的定义是:
Tester_1:
class Tester_1 {
public static void main(String args[]) {
Tester_2.setBoolean(true);
System.out.println(Tester_2.getBoolean());
}
}Tester_2:
class Tester_2 {
public static boolean var = false; // Static var
public static void setBoolean(boolean value) {
var = value;
}
public static boolean getBoolean() {
return var;
}
}Tester_3:
class Tester_3 {
public static void main(String args[]) {
System.out.println(Tester_2.getBoolean());
}
}在编译完这三个类之后,我按照以下顺序运行它们:
java Tester_1
java Tester_3但是我得到了这个输出:
在第一次运行时为true,从第二次运行时为false。那是为什么?当Tester_1将布尔值设置为true值时,为什么在运行Tester_3时获得默认的false?
发布于 2013-01-07 12:56:35
两次单独的处决
JVM使它变得更有趣,因为它为每次执行删除了以前的数据。
https://stackoverflow.com/questions/14196347
复制相似问题