Java 等于加号运算符

Java equals plus operator

我需要解释一下这个奇怪的运算符=+(等于加号)

示例 #1:

Double a = new Double(5);
Double b = new Double(10);
a += b

结果:

a=15.0
b=10.0

示例 #2:

Double a = new Double(5);
Double b = new Double(10);
a =+ b

结果:

a=10.0
b=10.0

我理解第一个例子,但请解释一下这个 =+ 运算符在例子 2 中做了什么。

另一个有趣的事实是,这些运算符是有效且可编译的: +=、-=、*=、/=
但是这两个中的任何一个都不会编译: =*, =/

=+是赋值操作,后面是一元+。它完全有效,发生的情况是:

a = (+b); 

当你想将一个变量的负值赋给另一个变量时,这几乎是一样的:

a = (-b); //a will be assigned with -10

此外,=* 无法编译,因为没有 * 一元运算符。