运算符 | 结合性 |
---|---|
[ ] . ( ) (方法调用) | 从左向右 |
! ~ ++ -- +(一元运算) -(一元运算) | 从右向左 |
* / % | 从左向右 |
+ - | 从左向右 |
<< >> >>> | 从左向右 |
< <= > >= instanceof | 从左向右 |
== != | 从左向右 |
& | 从左向右 |
^ | 从左向右 |
| | 从左向右 |
&& | 从左向右 |
|| | 从左向右 |
?: | 从右向左 |
= += -= *= /= %= &= |= ^= <<= >>= >>= | 从右向左 |
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先乘除(模),后加减。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后计算。 [1]
i++与++i
i++是在程序执行完毕后再进行自增
++i是程序开始执行前进行自增
参考引用:
[1]运算符优先级 http://baike.baidu.com/link?url=zVBTjWM0aPfbwjnF5koggPJZhGuAmnyB92nms0iVnbiHRgScW2m3sFJPN2IGIqgheUIGzaeJg37GHEjOB7b4La#4