Java算术运算符优先级从高到低为:括号()、一元正负+ -、乘除取余 / %、加减+ -(二元),同级左结合;如3+42-10/5%3先算* / %得3+8-2,再左结合得9。

Java 算术运算符优先级决定了表达式中各操作符的计算顺序,不是从左到右简单执行,而是按固定优先级和结合性来解析。理解它,关键在两点:优先级高低 + 同级时的结合方向(算术运算符基本都是左结合)。
常见算术运算符优先级从高到低
括号 () 最高(不是运算符,但强制改变优先级)→ 一元正负 + -(如 -5、+x)→ 乘除取余 * / % → 加减 + -(二元)。
注意:
- 一元 + 和 -(如 int y = -x;)比乘除还高;
- 二元 + 和 -(如 a + b - c)优先级最低,在算术运算符里排最后;
- *、/、% 优先级相同,从左到右算;
- +、-(二元)也同级,同样左结合。
看一个典型复杂表达式拆解
比如:int result = 3 + 4 * 2 - 10 / 5 % 3;
分步解析:
- 先算高优先级:
4 * 2 → 8,10 / 5 → 2(整除),再2 % 3 → 2; - 现在表达式变成:
3 + 8 - 2; - 同级左结合:
(3 + 8) - 2 = 11 - 2 = 9。
容易踩坑的几个点
这些情况看似简单,但常因忽略优先级出错:
-
字符串拼接混用:如
"a" + 3 + 4→"a34"(从左到右,"a"+3先转字符串);但3 + 4 + "a"→"7a"(先算数加法); -
负号和减号混淆:如
int x = 5; int y = -x * 2;等价于(-x) * 2,不是-(x * 2)(结果一样,但逻辑不同); -
取余符号对负数的影响:Java 中
%结果符号与被除数一致,如-7 % 3 → -1,7 % -3 → 1,优先级虽高,但语义易误读。
实用建议:怎么快速判断或避免出错
写代码时别靠硬记,用这几招更可靠:
- 不确定时,直接加小括号——清晰、安全、可读性强;
- 复杂表达式拆成多行或中间变量,例如把
a * b + c / d - e % f拆为:int p = a * b;、int q = c / d;、int r = e % f;、result = p + q - r;; - 用 IDE 实时求值(如 IntelliJ 的
Ctrl+Shift+I)或写个小程序打印中间结果,验证你的理解是否正确。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











