本文目录导读:

记住Java运算符优先级,其实不需要死记硬背整个表格。核心技巧是:记特例 + 用括号。
对于99%的日常开发场景,你只需要记住下面这张简化口诀表,其他遇到不确定的,一律加括号(),代码可读性更高,也不容易出错。
简化版口诀(只需记这 7 级)
你可以按从高到低的顺序记这个顺口溜(括弧里是运算符):
一自、二乘、三加、四移、五关、六等、七逻
展开解释:
- 一自(最高): (自增), (自减), (逻辑非)
- 二乘: (乘), (除), (取余)
- 三加: (加), (减)
- 四移:
<<(左移),>>(右移),>>>(无符号右移) - 五关:
<><=>=instanceof(关系比较) - 六等: (判断相等) 注意: 这比关系比较低一级,但比赋值高。
- 七逻(最低):
&&(逻辑与), (逻辑或)
特别说明:
- 赋值运算符 (, 等) 优先级最低,比逻辑或还低,
a = b && c永远先算b && c。 - 三目运算符 () 优先级只比赋值高一点,也很低。
90% 的人会搞错的 3 个特例(重点)
很多笔试题或者复杂表达式容易错,就错在这几个地方:
自增/自减与点号(.)的优先级
// 易错点: obj.x++ 是先取x还是先取obj?
// 规则: 点号(.) > 自增(++)
int[] arr = {1, 2};
int index = 0;
// 下面这句:先取 arr[0] = 1,index自增变成1
int value = arr[index++];
System.out.println(value); // 输出 1 (不是2)
System.out.println(index); // 输出 1 (自增生效)
记忆方法: 和 永远优先级最高(仅次于括号)。
移位与加减
// 易错点: 1 << 2 + 3 是等于 (1<<2)+3 还是 1<<(2+3)? // 规则: 加法(+) > 移位(<<) int a = 1 << 2 + 3; // 实际运算: 1 << (2+3) = 1 << 5 = 32 // 而不是:(1<<2) + 3 = 4+3=7
记忆方法: 四移是第4级,三加是第3级(更高),所以加、减先算。
比较与等于
// 易错点: 关系比较(< >) 高于 等于(== !=) int a = 5; int b = 6; boolean result = a > b == false; // 实际运算:先算 a > b = false,再算 false == false = true // 而不是: a > (b == false) 这种无意义比较 System.out.println(result); // true
记忆方法: “五关”排在“六等”前面。
真正实用的建议(而不是背诵)
比起记住整个表格,更重要的习惯是:
-
当你需要混合使用多个运算符时,能用括号就用括号。 这不是能力弱,而是代码清晰、避免坑。
a + (b << c)比a + b << c好一万倍。(a || b) && c比a || b && c好一万倍。
-
如果代码需要你思考 3 秒以上才能确定优先级说明可读性差。 拆分成多行或加括号。
-
不用记
&(按位与、或、异或)的优先级。 平时几乎不用,用时直接加括号。
终极记忆法(一句话总结)
单目 > 算术 > 移位 > 比较 > 等号 > 逻辑 > 赋值
或者更形象的:
“自己(自增)先算,然后算数,接着移位,再比大小,再看等于,最后逻辑判断,赋值收尾。”
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播