Java 中操作符的优先级从高到低排列如下:
- 括号
()
:用于改变运算的优先顺序。 - 后缀操作
expr++
,expr--
:表达式后增加和减少。 - 前缀操作
++expr
,--expr
,+
,-
,~
,!
:表达式前增加和减少,一元加、减,按位非和逻辑非。 - 乘法 / 除法 / 取模
*
,/
,%
。 - 加法 / 减法
+
,-
。 - 位移
<<
,>>
,>>>
:向左位移、向右位移、无符号向右位移。 - 关系比较
<
,>
,<=
,>=
,instanceof
。 - 等于/不等于
==
,!=
。 - 按位与
&
。 - 按位异或
^
。 - 按位或
|
。 - 逻辑与
&&
。 - 逻辑异或
^^
(有些場景很少使用,可能是误写)。 - 逻辑或
||
。 - 三元条件运算符
? :
。 - 赋值
=
,+=
,-=
,*=
,/=
,%=
,&=
,|=
,^=
,<<=
,>>=
,>>>=
。
操作符的优先级决定了表达式中操作的顺序。当表达式中有多个操作符时,操作符的优先级越高,操作越先执行。如果操作符具有相同的优先级,则通常情况下按从左到右的顺序执行。不过,赋值操作符是个例外,它是从右向左执行的。