第9篇:Java运算符简介
📌 系列导航:《Java 100 天进阶之路》完整目录 |
⬅️ 上一篇:第8篇:Java基本数据类型 |
➡️ 下一篇:第10篇:Java操作符有哪些?
一、核心知识点
- 算术运算符:
+-*/%++-- - 赋值运算符:
=及复合赋值(+=、-=等) - 比较运算符:
==!=<><=>=instanceof - 逻辑运算符:
&|!^&&|| - 位运算符:
&|^~<<>>>>> - 三元运算符:
条件 ? 真值 : 假值 - 运算符优先级(括号最优先)
二、通俗讲解(1分钟开心学)
1. 算术运算符(小心除法)
/:整数除法得到整数,5/2=2(不是2.5),想要小数必须有浮点数参与:5.0/2%:取余,结果符号与被除数相同:-5%2 = -1,5%-2 = 1++/--:前置先变后用,后置先用后变
2. 逻辑运算符(短路与非短路)
&&:短路与,左边false右边不执行||:短路或,左边true右边不执行&/|:非短路,两边都执行(通常用于位运算)
生活类比:
&&就像“如果今天下雨而且我没带伞”,如果“没下雨”,后面“没带伞”就不再检查了。&则一定两边都检查,浪费精力。
3. 位运算符(直接操作二进制,效率高)
&按位与、|按位或、^异或、~取反<<左移(相当于乘2的幂)、>>右移(符号位填充)、>>>无符号右移(0填充)
4. 三元运算符简化if-else
int max = (a > b) ? a : b;
5. 优先级速记:括号 > 单目 > 算术 > 移位 > 比较 > 逻辑 > 赋值
三、实操代码案例 + 场景说明
场景:写一个简单的计算器,处理用户输入的整数运算。
public class OperatorDemo {
public static void main(String[] args) {
int a = 10, b = 3;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b)); // 3
System.out.println("a % b = " + (a % b)); // 1
// 自增
int x = 5;
int y = x++; // y=5, x=6
int z = ++x; // x先变7, z=7
// 逻辑短路
boolean flag = false;
int num = 10;
if (flag && (num++ > 5)) { }
System.out.println(num); // 10,短路,num++未执行
// 位运算
int n = 7; // 111
System.out.println(n << 2); // 28 (11100)
System.out.println(n >> 1); // 3 (11)
System.out.println(-8 >> 2); // -2 (符号位填充)
System.out.println(-8 >>> 2); // 大正数,无符号右移
}
}
四、避坑要点
| 错误/误区 | 后果 | 正确做法 | ||
|---|---|---|---|---|
| 整数除法误以为得到小数 | 5/2 得到2 | 使用5.0/2或5/2.0 | ||
==比较字符串内容 | 比较地址,可能false | 用equals()比较内容 | ||
&&和&混淆 | &左边false右边仍执行,可能产生副作用 | 逻辑判断用&&、` | ` | |
| 移位超过位数宽度 | 1 << 33 等于 1 << 1(取模) | 了解规则:int移位只取低5位,long取低6位 |
五、面试高频考点
Q1:&&和&的区别?
&&是短路与,左边false则右边不执行;&是非短路与,两边都执行。&也可用于位运算。
Q2:>>和>>>的区别?
>>右移高位补符号位(正数补0,负数补1),>>>无符号右移高位始终补0。
Q3:a += b 和 a = a + b 有区别吗?
复合赋值
+=会隐式类型转换,例如byte a=1; a+=1;编译通过,而a=a+1需要强制转换。
六、练习题
- 计算:
(2 + 3 * 4) / 5 - 6 % 4的结果。 - 代码分析:
int a=10; a += a++ + ++a;最后a的值是多少?(写出运算过程) - 动手:用位运算判断一个整数是奇数还是偶数(最高效写法)。
📊 你的学习进度
- 当前:第9篇 / 共44篇 · 第二阶段:核心语法与面向对象(第5~20篇)
- ✅ 已完成:第1~8篇
- 📖 正在学:第9篇
- ⏳ 待学习:第10~44篇
👉 📚 完整目录 & 学习指南 | 🔥 订阅本专栏,不错过每一篇
💡 本专栏每篇都包含:避坑表 + 面试高频考点 + 练习题。每天30分钟,100天拿offer!
👉 下一篇预告
《Java操作符有哪些?》
内容简介:运算符完整清单,字面量详解,优先级表格,结合性规则。
💡 学完这篇,你将全面掌握Java操作符,不再被复杂的表达式绕晕。
📌 《Java 100 天进阶之路 | 从入门到上岗就业》 每天一篇,建议收藏 + 关注,一起100天拿offer!
👉 点击关注我,更新后第一时间收到推送!

2134

被折叠的 条评论
为什么被折叠?



