转载自: http://shangtang004.iteye.com/blog/734194 by shangtang004
java 中的=为简单赋值运算符,
+= -= 等为复合赋值运算符
看java specification中的一句话
A compound assignment expression of the form E1 op= E2 is equivalent to E1 =
(
T)((
E1) op (
E2)), where T is the type of E1, except that E1 is evaluated only once.
For example, the following code is correct:
short x = 3; x += 4.6;
and results in x
having the value 7
because it is equivalent to:
short x = 3; x = (short)(x + 4.6);
一直不太明白面试题中的这个区别,还是看权威放心些,有些书上把复合赋值运算符翻译为扩展运算符,让人不好理解。