java中大部分的运算符是从左向右结合的,只有单目运算符,赋值运算符和三目运算符是从右向左结合的。
运算符有不同的优先级,就是在表达式运算中的运算顺序。
单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低,多数运算符具有左结合性,单目运算符,三目运算符,赋值运算符具有右结合性。
Java中运算符的优先级分为14级,1级最高,14级最低。
优先级 | 运算符 | 结合性 |
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从左向右 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | <<、>>、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从左向右 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、<<=、>>=、>>>= | 从左向右 |