在 Java 中,运算符的优先级决定了它们在表达式中结合的方式。下面是 Java 中运算符的优先级列表,从最高优先级到最低优先级:
- 成员访问(
.
) - 数组下标(
[]
) - 函数调用(
()
) - 算术运算符:
- 指数(
**
) - 乘法和除法(
*
和/
) - 取模(
%
) - 加法和减法(+ 和 -)
- 指数(
- 移位运算符:
- 逻辑左移(
<<
) - 无符号右移(
>>>
) - 算术右移(
>>
)
- 逻辑左移(
- 关系运算符:
- 等于(
==
) - 不等于(
!=
) - 小于(
<
) - 小于等于(
<=
) - 大于(
>
) - 大于等于(
>=
)
- 等于(
- 逻辑运算符:
- 逻辑非(
!
) - 逻辑与(
&&
) - 逻辑或(
||
)
- 逻辑非(
- 条件运算符:
- 三元运算符(
?:
)
- 三元运算符(
- 位运算符:
- 按位与(
&
) - 按位或(
|
) - 按位异或(
^
) - 按位取反(
~
)
- 按位与(
- 赋值运算符:
- 简单赋值(
=
) - 加赋值(
+=
) - 减赋值(
-=
) - 乘赋值(
*=
) - 除赋值(
/=
) - 取模赋值(
%=
) - 左移赋值(
<<=
) - 无符号右移赋值(
>>>=
) - 算术右移赋值(
>>=
) - 按位与赋值(
&=
) - 按位或赋值(
|=
) - 按位异或赋值(
^=
)
- 简单赋值(
- 增量和减量运算符:
- 前增量(
++
) - 前减量(
--
) - 后增量(
++
) - 后减量(
--
)
- 前增量(
请注意,当一个表达式中包含多个运算符时,这些运算符将按照上述优先级顺序进行计算。如果有多个运算符具有相同的优先级,它们将从左到右进行计算。
此外,还有一些运算符,如 +
和 -
,它们既可以作为算术运算符,也可以作为赋值运算符。在这种情况下,它们作为算术运算符的优先级高于作为赋值运算符的优先级。例如,a += b
会被解释为 a = a + b
,而不是 a += (b + 1)
。
在编写代码时,了解运算符的优先级对于避免意外的计算结果非常重要。如果你在编写复杂的表达式,可能需要使用括号来明确指定运算的顺序。