码迷,mamicode.com
首页 > 编程语言 > 详细

Java随笔:混合类型表达式类型转换问题

时间:2015-01-03 22:20:51      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

混合表达式处理“坑”很多,看看下面这段代码:

short x = 0;
int y = 123456;
x += y;
System.out.println(x);

 按照正常的理解 x+=y 等价于 x = x+y

这里将int型的 y 强转为short型 x,会报告错误:

错误: 不兼容的类型: 从int转换到short可能会有损失

但是,上面的代码居然没有报错。

这里就是混合类型表达式默认进行了一次类型转换,将结果转换为左侧变量的类型,即x类型的short。

由于123456越界了,所以结果就是-7616。

总结

隐藏的类型转换很有可能编译不报错,但实际结果却对数值进行了截断。

当+=左右两边类型不相等时,一定要注意。

 

Java随笔:混合类型表达式类型转换问题

标签:

原文地址:http://www.cnblogs.com/tangyouhua/p/4199974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!