首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

复合赋值操作符跟简单赋值操作符的区别

2013-03-12 
复合赋值操作符和简单赋值操作符的区别。Java Language Specification 规定,复合赋操作符和简单赋操作符存

复合赋值操作符和简单赋值操作符的区别。

Java Language Specification 规定,复合赋值操作符和简单赋值操作符存在以下等价关系:

E1 op= E2  <==>  E1 = (T)((E1) op (E2)) 其中 T是E1的类型。 op可以为+,-,*,/,%,^,&,|,<<,>>,>>>

由于复合赋值操作符会自动进行类型转换,因此下面的语句也就不奇怪了:

short x = 0;int i = 123456;x += i;   // x = -7616x = x + i;  // 产生编译错误

但是如果复合赋值操作符使用不当,可能会悄悄丢掉精度或数量值。

一个建议是不要将复合赋值操作符作用于byte,char,short类型的变量。

对于其它混合类型,如果右边类型比左边类型宽,则可能会出现窄化转型[JLS5.1.3]。

热点排行