黑马程序员技术交流社区
标题: Java基础--逻辑运算符“+=” [打印本页]
作者: michael_wlq 时间: 2015-8-24 15:08
标题: Java基础--逻辑运算符“+=”
本帖最后由 michael_wlq 于 2015-8-24 17:17 编辑
思考: short s = 3; s = s + 2;
s + = 2;
有什么区别?
解答: s = s + 2 // 编译失败。该语句先做加法,再做赋值运算,分两步,首先s + 2中的s会被提升为int类型,运算后的结果还是int类型,int类型赋值给short类型会失精度,从而无法赋值给short类型,编译失败。
s + = 2 // 编译通过。因为+=运算符只做赋值运算,在给s赋值时,自动完成了强转操作,判断出int类型的5在short表示范围内,所以会先强制转换成short类型,然后赋值成功。
作者: cc3441251 时间: 2015-8-24 15:29
学习了谢谢分享
作者: michael_wlq 时间: 2015-8-24 15:35
客气啦,嘿嘿~
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |