1、java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行计算,最后得到一个int类型的结果。
2、short s=1;s=s+1; 错误 short s=1;s+=1; 正确! 原因:由于s是short型的,s+1之后,(s+1)就变成int型的,再赋值给short型的s就导致精度丢失,不合法了!而s+=1的类型并没有做改动,所以不会有类型转换,也就没有错误,第一种要消除错误需要 改成s=(short)(s+1);
1、java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行计算,最后得到一个int类型的结果。
2、short s=1;s=s+1; 错误 short s=1;s+=1; 正确! 原因:由于s是short型的,s+1之后,(s+1)就变成int型的,再赋值给short型的s就导致精度丢失,不合法了!而s+=1的类型并没有做改动,所以不会有类型转换,也就没有错误,第一种要消除错误需要 改成s=(short)(s+1);