7

可能重复:
Java += 运算符

我们可以将一个值添加到任何变量中,b+=8或者b=b+8两者都将返回添加8到变量中的值b。我在面试中得到了一个问题,它是

byte b=7;
b=b+8; //compile error

我打勾了会输出什么compile time error,因为添加byteint将是int(我相信)并且因为我们试图将int值存储到byte. 但是,当我自己尝试下面的代码时

byte b=7;
b+=8; //OK

然后,上面的代码编译并运行完美,没有任何错误并返回15。现在,我的问题是为什么以及如何?我的意思是,为什么它不需要显式转换?

4

1 回答 1

1

b = b + 8这是和的唯一区别b += 8

编译器自动进行强制转换。

于 2012-12-18T07:53:29.727 回答