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

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

对于short s1 = 1; s1 += 1;由于 +=运算符里已经包括了一个隐式的强制类型转换,因此Java会把s1+=1计算后的结果进行隐式的强制类型转换,因此它不会有任何错误。

posted @ 2020-12-06 14:20  咔啡  阅读(179)  评论(0编辑  收藏  举报