在Java中,运算符的优先级是用于确定在表达式中哪个运算符先计算的。当表达式中包含多个运算符时,运算符的优先级决定了哪些运算符将首先执行,以及哪些运算符将在后面执行。下面是Java中运算符的优先级列表(按照优先级从高到低排序):
优先级 | 运算符 | 描述 |
---|---|---|
1 | () | 括号(优先级最高,用于强制改变其他运算符的优先级顺序) |
2 | ++, -- | 前缀自增和自减,后缀自增和自减 |
3 | !, ~ | 逻辑非、按位取反 |
4 | *, /, % | 乘法、除法、取模 |
5 | +, - | 加法、减法 |
6 | <<, >>, >>> | 左移、右移、无符号右移 |
7 | <, <=, >, >= | 小于、小于等于、大于、大于等于 |
8 | ==, != | 等于、不等于 |
9 | & | 按位与 |
10 | ^ | 按位异或 |
11 | | | 按位或 |
12 | && | 逻辑与 |
13 | || | 逻辑或 |
14 | ?: | 三元运算符 |
15 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= | 赋值运算符 |
当一个表达式中同时包含多个运算符时,根据以上优先级规则,运算符将按照从高到低的顺序依次计算。如果有多个同级别的运算符,Java会按照从左到右的顺序计算。
例如,在以下代码中:
int a = 1 + 2 * 3 / 4;
按照优先级规则,乘法和除法运算的优先级高于加法和减法运算,因此,先计算乘法和除法运算,得到2。然后,加法运算的优先级低于乘法和除法运算,因此,在乘法和除法运算的结果上执行加法运算,得到2。最终,将结果赋值给变量a,a的值为2。