发布时间:2026/8/16 4:16:15
第4章 运算符与表达式 第4章 运算符与表达式数据定义好之后就要对数据进行运算。本节系统学习 Java 的各类运算符算术、赋值、比较、逻辑、三元等。一、算术运算符运算符说明示例结果加7 310-减7 - 34*乘7 * 321/除7 / 32整数相除取整%取余7 % 31System.out.println(7/3);// 2整数除法直接丢弃小数System.out.println(7.0/3);// 2.3333333333333335有小数参与就是浮点除法System.out.println(7%3);// 17 3*2 1为什么7 / 3是 2因为 int 类型装不下小数Java 规定整数 ÷ 整数结果仍是整数小数部分直接丢弃不是四舍五入3.99 也会变成 3。要保留小数至少让一边变成浮点数。另外整数除以 0 会抛ArithmeticException浮点除以 0 得Infinity注意分母别为 0。// 取余 % 的经典应用判断奇偶、拆数字System.out.println(123%2);// 1奇数System.out.println(123%10);// 3个位数字System.out.println(123/10%10);// 2十位数字自增自减运算符inta10;a;// a 11自增a--;// a 10自减intb10;intcb;// c 10先取值再自增后缀b 变成 11intdb;// d 12先自增再取值前缀b 变成 12口诀前缀 先用后加后缀 先加后用站在使用者的角度看。为什么要有因为i i 1在循环里写得太啰嗦i一行搞定。单独成行时前缀和后缀结果完全一样只有混进表达式里才有区别见扩展知识与易错点。二、赋值运算符是赋值不是数学中的等号intx5;x3;// x x 3 8x-2;// x 8 - 2 6x*4;// x 24x/6;// x 4x%3;// x 1复合赋值运算符、-、*、/、%能让代码更简洁且自带隐式强转// 复合赋值自带隐式强转byte 也能直接做运算byteb10;b5;// 编译通过等价于 b (byte)(b 5)// b b 5; // 编译报错b 5 是 int不能直接赋给 byte三、比较运算符结果永远是布尔值true/false运算符说明示例结果相等5 5true!不等5 ! 5false大于5 3true小于5 3false大于等于5 5true小于等于3 5true// 比较结果可以直接存进 boolean后面给 if 用booleanflag53;// trueSystem.out.println(flag);System.out.println(A65);// trueA 的 Unicode 编号就是 65注意基本类型用比较值String 等引用类型用比较的是地址比较内容要用equals()方法后面字符串章节会重点讲。四、逻辑运算符用于连接多个布尔表达式运算符说明示例短路与两边都为 true 才为 truea 0 b 0||短路或一边为 true 即为 truea 0 || b 0!非取反!true→ falseintage20;booleanisAdultage18;// truebooleancanDriveisAdultage70;// true满足两个条件booleanisKid!isAdult;// false短路特性重要左边为 false 时右边不再执行||左边为 true 时右边不再执行intx10;booleanr(x100)(x0);// 右边不执行x 仍是 10这个特性常用于避免空指针name ! null name.length() 0就是最经典的写法具体实战放到扩展知识里演示。五、三元运算符格式条件 ? 值1 : 值2intscore85;Stringresultscore60?及格:不及格;System.out.println(result);// 及格它是 if-else 的简写但表达式必须有返回值。可以嵌套但超过两层可读性很差不建议。求最大值这类二选一取值用三元最顺手int max a b ? a : b;六、运算符优先级从高到低常用顺序括号()自增自减 --乘除余* / %加减 -比较 相等 !逻辑与逻辑或||赋值 - ...建议不确定优先级时就用括号代码可读性比省几个括号重要得多。intresult(12)*(34)-5/2;// 3 * 7 - 2 19七、字符串拼接遇到字符串时是拼接操作Stringname张三;intage25;System.out.println(姓名name年龄age);// 姓名张三年龄25任何类型与字符串相加都会先转成字符串再拼接。后面字符串章节会讲为什么循环中拼接字符串性能差StringBuilder 的由来。// 任何类型遇到 字符串 都先转成字符串拼接方向从左往右System.out.println(结果是(12));// 结果是3括号里先算加法System.out.println(结果是12);// 结果是12直接拼接八、扩展知识1. 位运算入门 | ^ 面试常考、底层代码常用。注意区分、||是逻辑运算结果只有 true/false、|是位运算直接操作二进制位。运算符名称规则示例按位与两位都是 1 结果才是 16 3 2|按位或有一位是 1 结果就是 16 | 3 7^按位异或两位不同为 1相同为 06 ^ 3 5左移整体左移低位补 06 1 12右移整体右移高位补符号位6 1 3// 移位左移一位 乘 2右移一位 整除 2System.out.println(61);// 12System.out.println(61);// 3// 应用 1 判断奇偶n (n-1) 0 判断 2 的幂System.out.println((71)0?偶数:奇数);// 奇数System.out.println(160(1615)0);// true16 2^42. 短路求值的判空应用短路特性在判空 用值组合里几乎是标配写法// 配合三元做兜底显示配置或输入可能是 nullStringsgetInput();// 假设这个方法可能返回 nullStringshow(s!null!s.isEmpty())?s:空;System.out.println(show);// 空null 被安全兜底3. 自增自减的底层原理一句话概括i是先把 i 的当前值作为表达式结果再自增i是先自增再把新值作为表达式结果。// 后缀拿到的是自增前的值前缀拿到的是自增后的新值inta5;intbaa;// 第一次取 5a 变 6第二次取 6a 变 7 → 5 6 11intx5;intyxx;// 先变 6再变 7 → 6 7 13System.out.println(b y);// 11 13这种先后顺序在 JVM 底层对应专门的字节码指令。记住结论即可别把自增写进复杂表达式单独一行用谁都看得懂。九、易错点1. 整数除法直接取整// ❌ 想要 2.5却得到 2.05/2 先按 int 算出 2doubled15/2;System.out.println(d1);// 2.0// ✅ 至少一边是浮点数或显式强转doubled25/2.0;// 2.5doubled3(double)5/2;// 2.52. % 取余对负数的符号// ❌ 以为 -5 % 2 是 1实际是 -1符号跟随被除数System.out.println(-5%2);// -1System.out.println(5%-2);// 1// ✅ 需要非负余数时先对绝对值取余intrMath.abs(-5)%2;// 13. 用 比较浮点数// ❌ 0.1 0.2 实际是 0.30000000000000004和 0.3 永不相等doublea0.10.2;if(a0.3){// false里面永远不会执行System.out.println(相等);}// ✅ 用差值的绝对值小于一个极小值判断近似相等if(Math.abs(a-0.3)0.000001){System.out.println(近似相等);// 走这里}4. 记不住优先级却不用括号// ❌ 依赖记忆硬写隔几天自己都看不懂intr12*31;// (1 6) 1 3// ✅ 用括号把意图写清楚可读性优先intr2(12*3)1;// 3一眼看懂5. a 与 a 混用// ❌ 前缀后缀混进一个表达式结果全靠猜inti1;intjii;// 1 3 4i 变成 3// ✅ 自增自减单独成行前缀后缀完全等价行为清晰i1;i;i;System.out.println(i);// 3十、小结本系列统一按 JDK 8、JDK 11、JDK 17 三个 LTS 版本讲解。运算符这部分三个版本写法完全一致你用哪个版本练习都一样不用担心差异。整数除法取整、取余%用途广泛判断奇偶、取某位数字比较基本类型的值引用类型比较内容用equals、||有短路特性判空场景很好用三元是简单分支的语法糖嵌套别超过两层优先级记不住就用括号位运算是加分项业务代码别滥用自增自减单独成行使用下一节学习条件控制语句 if / switch。下一篇第5章 条件控制if / switch

相关新闻

2026/8/16 4:16:15

2026电赛智能小车开发指南:从硬件选型到算法部署全流程解析

这次我们来看一个面向2026年电赛的智能小车项目。对于电赛选手和嵌入式开发者来说,提前规划、技术选型和模块化验证至关重要。这个项目不是一个具体的成品,而是一套针对未来电赛(如2026年)小车题目的前瞻性技术框架与实现方案。它…

2026/8/16 4:16:15

一个数据分析项目改成 AI 流程后,最难的部分完全变了

聊《一个数据分析项目改成 AI 流程后,最难的部分完全变了》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要去年我带团队做了一个报表转智能分析的改造,本来以为最难的是接大模型API&…

2026/8/16 4:16:15

for循环深度解析:从i++/++i到性能优化与实战避坑指南

1. 项目概述:从“for”这个关键字说起如果你写过几行代码,无论是C、Java、Python还是JavaScript,那你一定见过for。它可能是你学编程时接触的第一个循环结构,简单到让人觉得“这有什么好讲的”。但在我十多年的开发生涯里&#xf…

2026/8/16 5:16:18

从Demo到上线:大模型岗位到底在筛掉哪批人?

聊《别急着重做AI大模型就业,先看岗位到底在筛什么》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要最近面试了几个转大模型的同行,发现一个现象:能跑通Demo的人一抓一大把&a…

2026/8/16 5:16:18

荣耀Robot Phone技术解析:从移动开发到具身智能的范式变革

最近科技圈有个很有意思的现象:当大家还在讨论“AI手机”到底是不是营销噱头时,荣耀直接扔出了一个新物种——Robot Phone。9999元起的定价,让它瞬间成为话题中心。但冷静下来看,这真的只是一款“能打电话的机器人”吗&#xff1f…

2026/8/16 5:16:18

基于Java+SpringBoot的拼车管理系统(源代码+文档+PPT+调试+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/16 5:16:18

C++模板元编程:让编译器帮你“算出“程序

模板元编程:让编译器帮你"算出"程序 引言:一个让人困惑的问题 你有没有想过:程序能在"编译的时候"就把计算做完,而不是等到运行时? 这就是模板元编程(Template Metaprogramming&#x…

2026/8/16 5:16:18

自动化的暑假记录

本人是一名普通双非的自动化准大一生,从7月的收到录取通知书时计划要努力学习一直到现在八月过半只是买了江科协的板子,跟着b站鹏哥c语言课程学了30%而且没刷过题。还记得鹏哥在最前的几节课就说了可以写些东西记录一下自己的学习过程,我当时…

2026/8/16 5:11:18

AI并行协作实战:从Grok Bot看多代理工作流搭建与优化

1. 先搞清楚 Grok Bot 是什么,以及它解决了什么协作痛点最近看到 Grok Bot 上线的消息,很多讨论集中在“AI 同事”和“并行协作”上。如果你也好奇这到底是个新工具,还是某个现有平台的升级功能,那这篇文章就是为你准备的。我花了…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…