- class OperatorDemo
- {
- public static void main(String[] args)
- {
- short s = 3;
- s += 4;
- System.out.println("s= "+ s);// s =7
- }
- }
复制代码
说明:在执行s+=4;语句时,编译器在编译的时候,默认进行了强制类型转换,也就是将int类型的数据类型转换成short类型的数据。
- class OperatorDemo
- {
- public static void main(String[] args)
- {
- short s = 3;
- s = s + 4;//报错
- System.out.println("s= "+ s);
- }
- }
复制代码
说明:在执行s=s+4;语句时,编译器在进行编译的时候,默认并没有强制类型转换。所以,s是short类型,4是int类型,s会自动提升为int类型,相加的和也是int类型,赋值给short类型的变量肯定会损失精度。报错,可以通过强制类型转换解决问题:s=(short)(s+4); |
|