黑马程序员技术交流社区

标题: i=i++;再Java中实现原理 [打印本页]

作者: jk7130866    时间: 2015-7-19 08:41
标题: i=i++;再Java中实现原理
今天逛论坛看到一位朋友发的帖子:
Int i=0;
i=i++;
结果i的值最后为0;没搞明白,上网查了查资料终于懂了,现在分享给大家,希望大家在遇到时小心;
会得到这样的结果是因为Java编译器再遇到++运算时重新开辟一块内存存放原始数据,完成赋值后释放掉这块内存


作者: 白羽蘇芳    时间: 2015-7-19 08:43
你的图我不懂,这个东西我只记得毕姥爷说的 这种情况是“先出去玩再回家吃饭”
作者: 小程序    时间: 2015-7-19 09:26
i++,和++i区别在于,前者是和i变化之前的值一样,而++i和变化之后的值一样,这样记住就行
作者: micro_hx    时间: 2015-7-19 10:35
先出去玩,再回家吃饭啊。。。
作者: jk7130866    时间: 2015-7-19 10:45
上面的i是原始变量,下面是临时开辟出了出来存放i原始数据的,这样i++之后,还是可以知道i++之前的值,++在右面,复制表达式用的取得是++之前的值,也就是临时存放的i值,这样的话就算i++之后,i还是被赋值为原来的值





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