下面是一份系统、清晰的 Java 运算符全解析(从入门到精通),适合从基础学习到进阶掌握 👇
一、什么是运算符?
**运算符(Operator)**是用于对变量或值进行操作的符号,例如:
int a = 10 + 5;
这里的 + 就是运算符。
二、Java 运算符分类总览
Java 运算符主要分为以下几类:
| 类别 | 运算符 |
|---|---|
| 算术运算符 | + – * / % ++ — |
| 赋值运算符 | = += -= *= /= %= |
| 比较运算符 | == != > < >= <= |
| 逻辑运算符 | && |
| 位运算符 | & | ^ ~ << >> >>> |
| 条件运算符 | ?: |
| 类型运算符 | instanceof |
| 其他 | new |
三、算术运算符(基础必会)
int a = 10, b = 3;
a + b // 13
a - b // 7
a * b // 30
a / b // 3(整数除法)
a % b // 1(取余)
⚠️ 注意
- 整数相除会 舍弃小数
- 想要小数结果:
double result = 10.0 / 3;
自增 / 自减(重点!)
int a = 5;
a++; // 后置自增 → 先用后加
++a; // 前置自增 → 先加后用
例子:
int x = 5;
int y = x++; // y=5, x=6
int z = ++x; // x=7, z=7
四、赋值运算符
int a = 10;
a += 5; // a = a + 5 → 15
a -= 3; // 12
a *= 2; // 24
a /= 4; // 6
a %= 5; // 1
👉 优点:代码更简洁
五、比较运算符(返回 boolean)
int a = 10, b = 20;
a == b // false
a != b // true
a > b // false
a < b // true
a >= b // false
a <= b // true
⚠️ 注意:
== 比较的是值(基本类型)
六、逻辑运算符(控制条件)
boolean a = true;
boolean b = false;
a && b // false(与)
a || b // true(或)
!a // false(非)
⭐ 短路特性(非常重要)
false && (10 / 0 > 1) // 不会报错(短路)
true || (10 / 0 > 1) // 不会执行右边
七、位运算符(进阶)
针对二进制操作:
int a = 5; // 0101
int b = 3; // 0011
a & b // 0001 → 1
a | b // 0111 → 7
a ^ b // 0110 → 6
~a // 按位取反
位移运算
a << 1 // 左移 → 乘2
a >> 1 // 右移 → 除2
a >>> 1 // 无符号右移
八、条件运算符(三目运算符)
int a = 10, b = 20;
int max = (a > b) ? a : b;
👉 等价于:
if (a > b) {
max = a;
} else {
max = b;
}
九、instanceof 运算符
用于判断对象类型:
if (obj instanceof String) {
System.out.println("是字符串");
}
十、new 运算符
用于创建对象:
String s = new String("hello");
十一、运算符优先级(重要)
从高到低(简化版):
()++ --* / %+ -<< >>> < >= <=== !=&&||?:=
👉 建议:不确定就加括号!
十二、常见坑总结(面试高频)
❌ 1. == 与 equals
String a = new String("hi");
String b = new String("hi");
a == b // false
a.equals(b) // true
❌ 2. 整数除法
System.out.println(5 / 2); // 2
❌ 3. 自增陷阱
int i = 1;
i = i++; // i 仍然是 1
❌ 4. 逻辑短路
if (a != null && a.length() > 0)
👉 顺序不能反!
十三、进阶建议(从熟练到精通)
如果你想达到“精通”,重点掌握:
✅ 运算符优先级 + 表达式执行顺序
✅ 位运算(算法、底层优化)
✅ 短路逻辑(避免异常)
✅ 三目运算符优化代码
✅ 与 JVM 执行机制的关系
总结一句话
👉 Java 运算符本质是:
“对数据进行计算、比较和控制流程的工具”
如果你愿意,我可以帮你继续进阶👇
👉 出一套「Java 运算符面试题(附答案解析)」
👉 或「高频陷阱专项训练」