在java中i + = i * i和i = + i * i有什么区别?

时间:2017-05-23 13:10:24

标签: java

之间有什么区别
i+=i*i

i=+i*i 

在java?

任何人都可以告诉我它背后的概念是什么。内部如何运作? 我得到任何值的不同输出。

2 个答案:

答案 0 :(得分:3)

i+=i*i相当于:

i = i + (i*i);

i=+i*i相当于:

i = i * i;

答案 1 :(得分:2)

让我为你解析一下:

i += i * i     // uses the "plus and becomes" operator

i = +i * i     // uses the assignment operator and the unary plus operator

第一个相当于

i = i + ( i * i )

第二个相当于

i = i * i

(实际上,一元+运算符会导致“一元促销”。这可能导致取消装箱和/或升级到int,具体取决于i的类型。但是,在此示例中,对于*的操作符,无论如何都会发生等效促销,因此+没有净效果。)