Java += 操作符实质

原文 标签 IT工具网 java 编程

问题:
我之前以为:i += j等同于i = i + j 但假设有:


int i = 5;
long j = 8;
这时 i = i + j不能编译,但i += j 却可以编译。这说明两者还是有差别的,这是否意味着,i += j 实际是等同于i= (type of i) (i + j) 呢?

答案:
对复合赋值表达式来说,E1 op= E2(诸如 i += j; i -= j 等等),其实是等同于 E1 = (T)((E1) op (E2)),其中,T是E1这个元素的类型。
举例来说,如下的代码:


short x = 3;
x += 4.6;
等同于

short x = 3;
x = (short)(x + 4.6);

本文链接:https://www.ojit.com/article/3345459  转载请保留出处。

相关文章:

JSON内容的HTTP Header该怎么填?

如何学习数据结构与算法

java - 如何测试一个数组是否包含指定的值

java - Eclipse Juno中的慢度(4.2)

java - 用Java Stream实现几个集合的笛卡尔积

Java将数组转换为List

怎样在一个<div>中水平居中另一个<div>

比较java枚举成员使用equal还是==

java初始化静态map

java - 在 map 中获取最后一行的数据