运算符优先级
优先级表
| 优先级 | 运算符 | 说明 |
|---|---|---|
| 1 | () | 括号 |
| 2 | ++ -- ! ~ | 一元运算符 |
| 3 | * / % | 乘除取模 |
| 4 | + - | 加减 |
| 5 | << >> >>> | 位移 |
| 6 | < <= > >= instanceof | 比较 |
| 7 | == != | 相等 |
| 8 | & | 按位与 |
| 9 | ^ | 按位异或 |
| 10 | | | 按位或 |
| 11 | && | 逻辑与 |
| 12 | || | 逻辑或 |
| 13 | ?: | 三元运算符 |
| 14 | = += -= 等 | 赋值 |
示例
java
// 先算乘除,后算加减
int result1 = 2 + 3 * 4; // 14
// 括号优先
int result2 = (2 + 3) * 4; // 20
// 复杂表达式
boolean result3 = true && false || true; // true
boolean result4 = true && (false || true); // true建议
使用括号明确优先级,增加可读性:
java
// ✅ 清晰
int result = (a + b) * (c - d);
// ❌ 依赖优先级
int result = a + b * c - d;同优先级运算符从左到右执行(赋值和三元运算符除外)。避免写复杂表达式,拆分成多步更易维护。
