一个例子:
public class A{
public static int a = 6;
}
然后两次运行程序:
第一次:
public class Test1{
public static void main(String[] args){
A a1 = new A();
a1.a ++;
System.out.println(a1.a);
}
}
第二次:
public class Test2{
public static void main(String[] args){
A a2 = new A();
System.out.println(a2.a);
}
}
答案是6,很多人认为是7,还有很多人不确定,会认为“同一个类的所有实例的静态变量共享同一块内存区域”,所以是答案是7,这句话有一个容易忽略的前提:“在同一个JVM进程中”,“两次运行的Java程序处于不同的JVM进程中,两个JVM进程不会共享数据”!