java运算符是操作数据的规则系统,需分清类别、记住行为、避开陷阱:算术运算符注意整数除法截断、取余符号由被除数决定、字符串拼接顺序影响结果、++/--前置后置差异;关系与逻辑运算符中==比较引用类型地址、&&||具短路性、!仅作用于布尔表达式;赋值运算符复合形式带隐式转换、三目运算符要求分支类型兼容;位运算符用于底层优化,注意&|在逻辑与位运算中的区别。

Java 运算符不是一道“题”,而是一套规则和符号系统,用来对数据进行操作。理解它,关键不是“解”,而是分清类别、记住行为、避开典型陷阱。
下面从实用角度讲清楚怎么掌握:
算术运算符:数值和字符串都得注意
包括 + - * / % ++ --。重点不是背符号,而是记行为:
-
/:两个整数相除,结果自动截断小数(
7 / 2得3,不是3.5);想保留小数,至少一个操作数转成double(比如7.0 / 2或(double)7 / 2) -
%:取余结果的符号由被除数决定(
-7 % 3是-1,不是2) -
+:遇到字符串就变成拼接(
"a" + 1 + 2→"a12",但1 + 2 + "a"→"3a",顺序影响结果) -
++/--:前置(
++a)先加再用,后置(a++)先用再加——在表达式里混用时极易出错,建议单行写清楚
关系与逻辑运算符:判断真假的底层逻辑
== != > = 返回 boolean;&& || ! 用于组合条件。
-
== 对基本类型比值,对引用类型比地址(字符串要用
.equals()) -
&& 和 || 具有短路特性:左边已能确定结果时,右边不执行(比如
arr != null && arr.length > 0安全,换顺序就可能空指针) -
! 只能作用于布尔表达式,不能写成
!5或!obj(除非obj是Boolean类型且非 null)
赋值与条件运算符:写简洁又安全的代码
= += -= *= /= %= 都是“先算再赋”,且复合赋值自带隐式类型转换(byte b = 1; b += 2; 合法,但 b = b + 2; 编译报错)。
? :(三目)是 if-else 的紧凑版,但只适合简单分支:
- 必须有返回值,且两个分支结果类型要兼容(
int a = flag ? 1 : 3.5;不行,类型不一致) - 别嵌套太深(
a ? b ? c : d : e),可读性差,直接上 if
位运算符:底层控制和高效技巧
& | ^ ~ > >>> 直接操作二进制位,常用于权限标记、状态压缩、算法优化。
- & 和 | 既是位运算符,也是逻辑运算符(不短路),注意区分使用场景
- 左移 n 位 ≈ 乘以 2ⁿ,>> 算术右移(补符号位),>>> 无符号右移(补 0)
- 日常业务代码中少用,但面试或性能敏感场景(如 HashMap 扩容)会考
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











