普通成员变量 x不共享 只是在本身的基础上做了相应处理
public class Test {
private int x=100;
public static void main(String[] args) {
Test hs1=new Test( );
int a=++hs1.x;//a=101
System.out.println(a);
Test hs2=new Test( );
a= ++hs2.x;//a=101
Test hs3=new Test( );
a= --hs3.x;//a=99
} }
静态变量 全局共享 只要被使用 其值必改变, x-1此时变成99 而因为x是静态变量 所以hs1/hs2调用时 调用的是已被改变的(x-1)的值 也就是99
所以如下列代码所示:
private static int x=100;
public static void main(String[] args) {
x=Test.x-1;//x=99
Test hs1=new Test();
int a=hs1.x;//a==x=99
Test hs2=new Test( );
a= hs2.x;//a==x=99
System.out.println("x="+a);//x=99
}
静态变量 全局共享 只要被使用 其值必改变(如果刚才的例子不懂得话
就看一下此段代码 x总在上一段代码执行后 拿到x的值后 在进行相应处理)
private static int x=100;
public static void main(String[] args) {
Test hs1=new Test();
int a=++hs1.x;//a=101 此时x值变成101
Test hs2=new Test( );
a= ++hs2.x;//a=102 //此时x的值变成101+1即102
a=--Test.x;//a=101
System.out.println("x="+a);//x=101
}