• 目录

short s1 = 1; s1 = s1 + 1;有错吗?

阅读量: 306 编辑

short s1 = 1; s1 = s1 + 1;有错吗?

考察类型转换

short s1 = 1; //正确
short s2 = 32768; //错误;short最大是32767(2^15-1),32768超出了就是int类型

s1 = s1 + 1; //错误;这里的1是int类型,不能向下转换
s1 += 1; //正确; += 会隐式的进行类型转换,相当于 s1 = (short)(s1+1)

//其他类型依次类推
float f = 3.14; //错误
f += 3.14; //正确

Java类型自动转换原则

  • 目录