b += a与b = a+b的区别

先来看以下代码:

byte a = 126;
byte b = 127;
b = a + b;
b += a;

double c = 0.5;
int d = 1;
d = c + d;
​d += c;
其中b = a + b 与 d = c + d是编译不过的。而 += 可以通过编译是因为 += 会隐式的将加操作的结果类型转换为持有结果类型,所以 b += a 经过了 (byte)(a+b)的过程,看反编译后的代码其实执行的是b = (byte)(a+b)。

 


版权声明:本文为imiMi_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。