class StaticTest {
Static int i = 47;
}假如StaticTest.i++;
其中,++运算符会使变量增值。此时,无论st1.i还是st2.i的值都是48吗?
  
我觉得是47和48啊

解决方案 »

  1.   

    static,顾名思义,所有的类都公用这个静态变量。也就是说,不管你创建几个类,在堆内存中只有一个i的空间,所有类的对象都公用这个空间。
      

  2.   

    那执行StaticTest.i++;
    这个命令后 结果都是48吗?
      

  3.   

    i++
    这个等价于 i = i + 1
    执行这个操作时 左值是旧值  右值是新值就是 i+1如果是 ++i
    这个操作 左值和右值 都是新值  都是 i+1