Java 第三讲运算符Operators这一讲是 Java 入门阶段最核心的内容之一几乎所有后续的判断、循环、计算都建立在运算符的基础上。建议边看边在 IDE 里敲代码验证推荐 IntelliJ IDEA Community 或 Eclipse。1. 运算符分类总览Java 共 8 大类分类符号示例作用简述优先级层级大致算术运算符 - * / % –数学计算高赋值运算符 - * / % | ^ 给变量赋值带计算的快捷形式最低关系/比较运算符 !比较大小/是否相等返回 boolean中等逻辑运算符 || ! ^逻辑与/或/非/异或中等偏低位运算符 | ^ ~ 二进制位操作中等移位运算符 位左移/右移/无符号右移中等条件/三元运算符? :简洁的 if-else较高instanceofinstanceof类型判断中等其他. () [] new点运算、括号、数组、创建对象最高2. 重点详解 代码示例最常考/最易错部分2.1 算术运算符Arithmetic Operatorsinta10,b3;System.out.println(ab);// 13System.out.println(a-b);// 7System.out.println(a*b);// 30System.out.println(a/b);// 3 整数除法向下取整System.out.println(a%b);// 1 余数doublec10.0/3;// 3.3333333333333335System.out.println(c);// 自增/自减最容易错intx5;intyx;// 先赋值后自增 → y5, x6intzx;// 先自增后赋值 → z7, x7System.out.println(yy, zz, xx);// y5, z7, x7经典面试题inti1;ii;// i 最后是多少 → 1先赋值1给临时变量再i1但结果没接收2.2 关系运算符Relational Operators结果永远是boolean类型intage20;booleanisAdultage18;// truebooleaneq(age20);// truebooleanne(age!21);// true2.3 逻辑运算符Logical Operators——短路 vs 非短路运算符含义是否短路特点逻辑与是左边false → 右边不执行逻辑与否两边都执行很少用||逻辑或是左边true → 右边不执行|逻辑或否两边都执行!逻辑非-取反^逻辑异或否两边不同为trueintscore85;booleanpassscore60score100;// true// 短路特性演示非常重要intn0;booleanres(n!0)(10/n2);// 不会除0异常因为短路// 如果写成 就会报 ArithmeticException: / by zero2.4 三元条件运算符Ternary Operator——最优雅的 if-else 替代语法条件 ? 表达式1 : 表达式2inta10,b20;intmax(ab)?a:b;// 20Stringlevel(score90)?优秀:(score80)?良好:(score60)?及格:不及格;// 经典用法避免空指针Stringnameuser!null?user.getName():匿名;2.5 赋值运算符Assignment Operators——复合赋值intx10;x5;// x x 5 → 15x*2;// x x * 2 → 30x2;// x x 2右移2位2.6 位运算符 移位面试高频inta0b1010;// 10intb0b1100;// 12System.out.println(ab);// 8 → 1000System.out.println(a|b);// 14 → 1110System.out.println(a^b);// 6 → 0110 异或不同为1System.out.println(~a);// -11 按位取反注意符号位// 移位效率极高常用于性能优化System.out.println(82);// 32 → 8 * 4System.out.println(323);// 4 → 32 / 8System.out.println(-82);// 大正数无符号右移补0经典技巧判断奇偶n 1 1→ 奇数2的幂次快速乘除x 3 x * 8交换两数不使用临时变量a ^ b; b ^ a; a ^ b;3. 运算符优先级表必须烂熟于心括号最高从高到低同一行优先级相同从左→右结合除赋值类从右→左() . [] – ! ~ 一元/ % instanceof !位与^位异或|位或||? :三元 - * / % | ^ 赋值从右向左口诀记忆单目算术移乘除加减比位与异或或逻辑三元赋4. 常见坑 面试题速览i i结果是多少仍为原值String s 5 5 5输出什么“105”short s 1; s s 1;编译报错吗报错需强制转换char c A 1;结果是多少‘B’boolean b true ^ true;结果false5. 练习建议今天必须写完用三元运算符判断闰年能被4整除但不能被100整除或能被400整除用位运算实现判断一个数是否是 2 的整数次幂写出下面表达式的值intx3,y4,z5;booleanresx3y4||z--5;System.out.println(x,y,z,res);有哪道题不会或者想重点看哪类运算符的更多例子位运算/三元/短路直接说我继续给你展开