为了账号安全,请及时绑定邮箱和手机立即绑定

Byte自增问题

Byte自增问题

慕妹3146593 2019-03-01 11:10:27
Byte a = 123; a++; System.out.println(a);// 124 /* * 上面的结论是: a++的时候首先是 创建一个Byte对象124,然后将a引用指向这个Byte 124对象,这个解释有问题吗? */ Byte b = 126; b = b++; System.out.println(b);// 126 /* * 根据第一段代码的执行结果; * b=b++,的执行操作是首相将b引用赋值给b引用,所以没有改变,然后将b引用所指向的对象自增(这个实现的过程是创建一个对象值为127, * 然后让b引用指向这个127),如果这样理解,结果不应该是127吗 */ 求解,谢谢
查看完整描述

5 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

++、--务必单独写,否则就是自己给自己找麻烦。
对于像i=i+++++i这种题目,只能鄙视了……

查看完整回答
反对 回复 2019-03-01
?
炎炎设计

TA贡献1808条经验 获得超4个赞

java栈帧含有局部变量表和操作数栈,++自增操作是对局部变量表中的值直接操作的,i=i++时,先把局部变量表的i压入操作数栈,再把局部变量表的i加1变为127,然后把操作数栈中的i(126)写回到局部变量表的i中,覆盖了127数据,变为126了。而++i顺序不同,是先自增局部变量表的i,然后再加入操作数栈的。

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 1072 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号