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

© hkh3321313   /  2016-3-22 23:10  /  10505 人查看  /  115 人回复  /   7 人收藏 转载请遵从CC协议 禁止商业使用本文

这道题老师讲了 还是每台明白 就背下来了
回复 使用道具 举报
cohle1992 来自手机 中级黑马 2016-3-31 13:14:44
62#
学习了!收藏!
回复 使用道具 举报
看不懂 ,
感觉
int i = 0 ;
i=i++  , i 先赋值 给左边  然后 自增  自增完了  还赋值 覆盖刚才的 i 吗 ?   看来是不赋值的 打印  i = 0
但是换成
a= i++,  先赋值给左边 然后自增  为什么这个自增后 打印就是 自增后的 1 呢  打印  i=1   a = 0
回复 使用道具 举报
长知识了。。。。
回复 使用道具 举报
不注意真会被坑
回复 使用道具 举报
学习学习吧
回复 使用道具 举报
这个和编译器相关的
回复 使用道具 举报
还不是很懂啊
回复 使用道具 举报
厉害,分析有够深的
回复 使用道具 举报
搜噶,了解了
回复 使用道具 举报
涨姿势了  谢谢
回复 使用道具 举报
学习一下        
回复 使用道具 举报
不太明白感觉还是挺牛的
回复 使用道具 举报
zhoubinjian 发表于 2016-3-23 02:00
不行了,还是没有理解过来 ,,内存上的i+1,是怎么回事,怎么是i赋值给i+1的呢, ...

是指赋值给那块内存吧,就是i代替了i+1
回复 使用道具 举报
可以,涨姿势了,不细想一下还真是容易错
回复 使用道具 举报
xiaofushen 发表于 2016-3-23 00:18
这个问题一开始我和同学也纠结好久,不过后来明白了,不过楼主分享的很详细,理解又加深了. ...

i = i++;不是先赋值然后再自增吗?我看那个内存图上是先自增然后赋值呢!!!
回复 使用道具 举报
NeverBack 发表于 2016-4-13 22:42
i = i++;不是先赋值然后再自增吗?我看那个内存图上是先自增然后赋值呢!!!

我们说的先赋值再自增是对于j=i++的情况,因为就结果而言,是先赋值再自增.对于底层的java编译器是如何实现这一操作的,我们并不知道,对于楼主发的java编译器对于i++的操作,就结果而言是和"j=i++先赋值再自增"不矛盾的.而对于i=i++,就不能认为是先赋值再自增了,因为底层是楼主发的内存图那样操作的.
回复 使用道具 举报
本来还挺懂得,这一下整蒙了
回复 使用道具 举报
这个问题一开始我和同学也纠结好久,不过后来明白了,不过楼主分享的很详细,理解又加深了.
回复 使用道具 举报
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马