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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告
需要强制转换类型的错误。对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

2 个回复

正序浏览
第一个编译直接报错,第二个如果超出了short的取值范围就会损失精度
回复 使用道具 举报
一句话:易于损失精度;s1是short类型,s1+1自动转换成int的类型,赋值给short类型的s1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马