本帖最后由 HM李超 于 2013-8-18 23:49 编辑
我们知道Java中支持符合运算符,现在以“+=”这个运算作示例,设有两个变量a,b。
一般情况下,我认为a+=b这个表达式,相当于a=a+b和a=b+a;看起来并没有什么区别,大部分情况下,运算结果一致。
看看下面的示例程序,其结果就不一样了- class Demo
- {
- public static void main(String[] args)
- {
- int a = 1;
- a+=a++;
- System.out.println(a); //输出:2
- }
- }
复制代码 上面的代码按照以前的理解可以拆解成a=a+a++和a=a++ +a这两种形式,第一种形式运算结果为2,第二种运行结果为3;
由此可以理解成Java中的a+=b表达式只能等同于a=a+b,而绝不等于a=b+a,这样理解,对吗?有知道的人能给我具体解释吗?最好给个内存图理解理解!
|