第9篇Java运算符简介一、核心知识点算术运算符-*/%--赋值运算符及复合赋值、-等比较运算符!instanceof逻辑运算符|!^||位运算符|^~三元运算符条件 ? 真值 : 假值运算符优先级括号最优先二、通俗讲解1分钟开心学1. 算术运算符小心除法/整数除法得到整数5/22不是2.5想要小数必须有浮点数参与5.0/2%取余结果符号与被除数相同-5%2 -15%-2 1/--前置先变后用后置先用后变2. 逻辑运算符短路与非短路短路与左边false右边不执行||短路或左边true右边不执行/|非短路两边都执行通常用于位运算生活类比就像“如果今天下雨而且我没带伞”如果“没下雨”后面“没带伞”就不再检查了。则一定两边都检查浪费精力。3. 位运算符直接操作二进制效率高按位与、|按位或、^异或、~取反左移相当于乘2的幂、右移符号位填充、无符号右移0填充4. 三元运算符简化if-elseintmax(ab)?a:b;5. 优先级速记括号 单目 算术 移位 比较 逻辑 赋值三、实操代码案例 场景说明场景写一个简单的计算器处理用户输入的整数运算。publicclassOperatorDemo{publicstaticvoidmain(String[]args){inta10,b3;System.out.println(a b (ab));System.out.println(a - b (a-b));System.out.println(a * b (a*b));System.out.println(a / b (a/b));// 3System.out.println(a % b (a%b));// 1// 自增intx5;intyx;// y5, x6intzx;// x先变7, z7// 逻辑短路booleanflagfalse;intnum10;if(flag(num5)){}System.out.println(num);// 10短路num未执行// 位运算intn7;// 111System.out.println(n2);// 28 (11100)System.out.println(n1);// 3 (11)System.out.println(-82);// -2 (符号位填充)System.out.println(-82);// 大正数无符号右移}}四、避坑要点错误/误区后果正确做法整数除法误以为得到小数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。Q3a b和a a b有区别吗复合赋值会隐式类型转换例如byte a1; a1;编译通过而aa1需要强制转换。六、练习题计算(2 3 * 4) / 5 - 6 % 4的结果。代码分析int a10; a a a;最后a的值是多少写出运算过程动手用位运算判断一个整数是奇数还是偶数最高效写法。 下一篇预告《Java操作符有哪些》内容简介运算符完整清单字面量详解优先级表格结合性规则。 学完这篇你将全面掌握Java操作符不再被复杂的表达式绕晕。下一篇预计明天10:00更新 点击关注我更新后第一时间收到推送 本系列每天一篇建议收藏 关注一起30天从入门到就业。