A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jk7130866 中级黑马   /  2015-7-19 08:41  /  656 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

4 个回复

倒序浏览
你的图我不懂,这个东西我只记得毕姥爷说的 这种情况是“先出去玩再回家吃饭”
回复 使用道具 举报
i++,和++i区别在于,前者是和i变化之前的值一样,而++i和变化之后的值一样,这样记住就行
回复 使用道具 举报
先出去玩,再回家吃饭啊。。。
回复 使用道具 举报
上面的i是原始变量,下面是临时开辟出了出来存放i原始数据的,这样i++之后,还是可以知道i++之前的值,++在右面,复制表达式用的取得是++之前的值,也就是临时存放的i值,这样的话就算i++之后,i还是被赋值为原来的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马