Java运算符优先级一览表(新手必看)
Java 语言中的表达式,是指使用运算符连接起来的符合 Java 运算规则的表达式,运算符的优先级决定了表达式中运算的先后顺序。
下表所示为 Java 语言中的运算符的优先级,建议大家收藏,方便后续在编写程序的过程中参考。
在 Java 语言中,运算符的优先级由高到低依次是:增量和减量运算符、算术运算符、比较运算符、逻辑运算符以及赋值运算符。
如果两个表达式具有相同的优先级,那么左边的表达式要比右边的表达式先被运算。
例如,分别定义值为 2 和 3 的 int 型变量 a、b,表达式“a * b + 5”和“a * (b + 5)”的运算结果如下图所示。

图 1 使用圆括号更改运算的优先级
圆括号也常用于调整代码格式,以提高代码的可读性。例如下列表达式:
为了提高上述表达式的可读性,可以把上述表达式用圆括号括起来,在不改变任何运算优先级的前提下,上述表达式可更改为如下表达式:
下表所示为 Java 语言中的运算符的优先级,建议大家收藏,方便后续在编写程序的过程中参考。
优先级 | 描述 | 运算符 |
---|---|---|
1 | 括号 | () |
2 | 正负号 | +、- |
3 | 一元运算符 | ++、--、! |
4 | 乘除 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | >>、>>>、<< |
7 | 比较大小 | <、>、>=、<= |
8 | 比较是否相等 | = =、!= |
9 | 按位与运算 | & |
10 | 按位异或运算 | ^ |
11 | 按位或运算 | | |
12 | 逻辑与运算 | && |
13 | 逻辑或运算 | || |
14 | 三元运算符 | ?: |
15 | 赋值运算符 | = |
在 Java 语言中,运算符的优先级由高到低依次是:增量和减量运算符、算术运算符、比较运算符、逻辑运算符以及赋值运算符。
如果两个表达式具有相同的优先级,那么左边的表达式要比右边的表达式先被运算。
Java圆括号
使用圆括号能够更改运算的优先级,进而得到不同的运算结果。例如,分别定义值为 2 和 3 的 int 型变量 a、b,表达式“a * b + 5”和“a * (b + 5)”的运算结果如下图所示。

图 1 使用圆括号更改运算的优先级
圆括号也常用于调整代码格式,以提高代码的可读性。例如下列表达式:
a = 7 >> 5 * 6 ^ 9 / 3 * 5 + 4;上述表达式既复杂又难读,而且很容易估错计算结果,影响后续代码的执行。
为了提高上述表达式的可读性,可以把上述表达式用圆括号括起来,在不改变任何运算优先级的前提下,上述表达式可更改为如下表达式:
a = (7 >> (5 * 6)) ^ ((9 / 3 * 5) + 4);总之在编写程序时,要尽量使用圆括号“( )”限定运算的优先级,以免产生错误的运算结果。