关于short s1=1时s1=s1+1与s1+=1的区别。

关于short s1=1时s1=s1+1与s1+=1的区别。

1、对于s1=s1+1,s1+1会自动提升类型,结果为int型,再赋值给short型的s1时会报强制类型转换的错误。

2、对于s1+=1,由于+=是JAVA语言规定的运算符,JAVA编译器会对其进行特殊处理。

short s1 = 1; s1 = s1 + 1;有什么错?

short s1 = 1; s1 += 1;有什么错?

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型(byte,short,char 这三种类型在参与运算时,会自动转换成int类型),所以最后的结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误(因为int类型转换成short类型可能会损失精度,计算机只要认为可能出错,这哥们就会提示给我们,它还是比较尽职的)。

对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊处理,也就是类型自动提升,因此可以正确编译。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏
分享
评论 抢沙发
  • Jason.Meng

    昵称

  • 取消
    昵称表情代码图片