Java运算符的优先级

  在现实生活中我们的逻辑都差不多是从左向右的,在数学运算中,它的运算都基本也是从左向右运算的。

  但在Java中就不一定了,Java中大部分的运算符其实也是自左向右计算的,但是单目运算符、赋值运算符与三目运算符例外,它们是自右向左计算的。

  一般来说,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性(自左向右),单目运算符、三目运算符、赋值运算符具有右结合性(自右向左)。

  Java中运算符的优先级共分为14个等级,其中1级最高,14级最低。在同一个表达式中运算符优先级高的先执行。

  下表列出了所有的运算符的优先级以及结合性:

Java运算符的优先级
优先级 运算符 结合性
1 ()、[]、{} 自左向右
2 !、+、-、~、++、-- 自右向左
3 *、/、% 自左向右
4 +、- 自左向右
5 <<、>>、>>> 自左向右
6 <、<=、>、>=、instanceof 自左向右
7 ==、!= 自左向右
8 & 自左向右
9 ^ 自左向右
10 | 自左向右
11 && 自左向右
12 || 自左向右
13 ? : 自右向左
14 =、+=、-=、*=、/=、&=、|=、^=、~=、<<=、>>=、>>>= 自右向左
原文地址:https://www.cnblogs.com/joyfulcode/p/12299431.html