可能重复:
Java += 运算符
我们可以将一个值添加到任何变量中,b+=8
或者b=b+8
两者都将返回添加8
到变量中的值b
。我在面试中得到了一个问题,它是
byte b=7;
b=b+8; //compile error
我打勾了会输出什么compile time error
,因为添加byte
和int
将是int
(我相信)并且因为我们试图将int
值存储到byte
. 但是,当我自己尝试下面的代码时
byte b=7;
b+=8; //OK
然后,上面的代码编译并运行完美,没有任何错误并返回15
。现在,我的问题是为什么以及如何?我的意思是,为什么它不需要显式转换?