黑马程序员技术交流社区
标题:
急,在线等
[打印本页]
作者:
暴风城管
时间:
2016-3-15 00:07
标题:
急,在线等
关于 int x=1;
x=x++;
System.out.println(x);
java中到底是什么情况?明天还有课,最好快一点。
作者:
huhemingtiancai
时间:
2016-3-15 00:07
这个主要是可以看做有一个隐性的变量
int x=0;
x=x++;
System.out.println(x);
第二个x=x++拆开看
等于是
int b;
x=b;
b=x++;
在调换下位置,按顺序,就是
int b;
b=x++;
x=b;
所以其实x还是不变的。
作者:
xiaobinghe
时间:
2016-3-15 00:16
本帖最后由 xiaobinghe 于 2016-3-15 00:18 编辑
x++是x先参与运算在自增;而++x是先自增再参与运算;
单独使用:
放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。
作者:
暴风城管
时间:
2016-3-15 00:24
明白了 谢谢啊
作者:
huazhifansun1
时间:
2016-3-16 13:34
作者:
新手上路
时间:
2016-3-16 16:06
http://soft.chinabyte.com/database/279/11431779.shtml
作者:
305450674
时间:
2016-3-18 12:10
首先呢,定义了一个 x 在堆内存中,然后给 x 赋值为1是指在常量池中 创建一个 1 的对象,再将x指向这个1.
运行x = x++的时候,根据++在变量x 后面,所以对 x进行先赋值
也就是把本来存在的 x = 1的值 赋值给了 x 本身, 那么这个x还是指向常量池中的1
然后 第二个 x 再进行自加, 自加完后 x = 2 但是这个 x 另外存在在堆内存中,并不是指向常量池
最后打印的x 是第一个指向常量池中1的x, 所以x打印出来还是1
作者:
赵浩霖
时间:
2016-3-18 21:36
305450674 发表于 2016-3-18 12:10
首先呢,定义了一个 x 在堆内存中,然后给 x 赋值为1是指在常量池中 创建一个 1 的对象,再将x指向这个1.
运行 ...
Java中出了堆概念和常量池概念外还有其他类似的概念吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2