黑马程序员技术交流社区

标题: 今天课堂上老师讲了一道题,思路不是很懂,求各位大神... [打印本页]

作者: 吖歪    时间: 2016-3-13 00:03
标题: 今天课堂上老师讲了一道题,思路不是很懂,求各位大神...
class Test1{        public static void main(String [] args){
                int a=1;
                a=a++;
                System.out.println(a);        
        }
}

打印结果为1;

求各位大神解析。谢谢。

作者: 天赐潇潇    时间: 2016-3-13 00:06
http://blog.csdn.net/miderph84/article/details/3390166
作者: lijiy09    时间: 2016-3-13 00:10
++放在a后面,先把a 赋值给a,再自增,输出结果还是a
作者: zhangyapeng    时间: 2016-3-13 00:13
a++是先赋值
作者: 蔡Sir.    时间: 2016-3-13 12:39
这个跟JAVA语言的底层存储结构以及JVM的运算方式有关
int a = 1;
a = a++;     /*在这里可以把这个式子看成  a= a        ++;即a = a 以及 a = a + 1,原因是因为a++是先赋值再自增,然后JVM在运算过程中是从右到左进行的,所以算到a = a + 1时a是=2的,但是左边还有一个式子  a=1,即这个式子又把a=2覆盖了,所以最终输出的是a = 1
作者: Senmonfy    时间: 2016-3-13 13:05
a++就是先将a=1赋值给a存储起来,然后a在执行a=a+1




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2