强转类型转换:
小伙伴们,以下代码哪些有错误呢?
final byte num1 = 10;
byte num2=10;
byte result1 = num1 + 10;
byte result2=num2+10;
byte result3=10+10;
byte result4=10.0+10;
byte result5=400+1;
解析:
result1:正确,final修饰的是常量;
result2:错误,右侧有变量,必须手动强转;修改byte result2= (byte) (num2+10);
result3:正确,右侧是常量,编译器常量优化处理;
result4:错误,除了将int类型的常量赋值给byte、short、char型的变量以外,其他类型常量赋值给类型较小的变量都需要手动处理;修改byte result4= (byte) (10.0+10);
result5:错误,超过了byte的范围,直接编译报错;
如(1)byte b=400;
Incompatible types.
Required: byte
Found: int
如(2) short s=60000;
Incompatible types.
Required: short
Found: int
也可以进行强转,但是结果不一定是预期结果,比如byte result5= (byte) (400+1);//输出结果是-111
1190

被折叠的 条评论
为什么被折叠?



