Java运算符面试重点在于理解执行顺序、隐式转换和短路行为;自增/自减需区分前后置,逻辑运算符强调&&和||的短路特性,赋值运算注意byte/short隐式转换,三元运算符有严格类型推断规则。

Java 运算符是面试中高频且易错的考点,重点不在背符号,而在理解执行顺序、隐式转换和短路行为。掌握核心几类运算符的“坑点”比全面罗列更重要。
自增/自减(++/--)必须分清前后位置
这是面试最常考的陷阱题。关键看“赋值发生在自增前还是后”:
- int i = 1; int j = i++; → j 得到的是旧值 1,i 变成 2
- int i = 1; int j = ++i; → i 先变成 2,j 得到新值 2
- 底层逻辑:后置操作会用临时变量暂存原值,再修改原变量;前置操作先改原变量,再取值
- 典型面试题:
int i = 1; i = i++;结果仍是 1(先赋旧值,再自增,但赋值已覆盖)
逻辑运算符要盯住“短路”特性
&& 和 || 是开发中实际使用的主流,它们的“跳过右侧”行为直接影响程序流程和安全性:
- if (obj != null && obj.getName().length() > 0) —— 左边为 false 时,右边不会执行,避免空指针
- if (flag || expensiveCheck()) —— 左边为 true,右边不调用,提升性能
- & 和 | 会强制执行两边,仅在位运算或需确保副作用时使用(如日志记录)
赋值与复合赋值要注意类型隐含转换
看似简单,但 byte/short 类型容易出错:
立即学习“Java免费学习笔记(深入)”;
-
byte b = 10; b += 5; ✅ 合法,编译器自动补上
(byte)强转 -
byte b = 10; b = b + 5; ❌ 编译失败,因为
b + 5结果是 int,不能直接赋给 byte - 所有数值运算中,
byte、short、char都会先提升为int再计算
三元运算符别只当简写,它有明确返回类型
?: 不是语法糖,而是一个表达式,有确定的返回类型,涉及类型推断:
-
Object obj = flag ? "hello" : 123; → 返回类型是
Serializable(二者最近公共父类) - int x = true ? 1 : 2.5; ❌ 编译错误,int 和 double 无法统一为单一基本类型
- 建议:复杂逻辑不用三元,简单分支才用;注意避免嵌套三层以上
不复杂但容易忽略


















