当前位置: 首页 > article >正文

JavaSE基础04-基本运算符

运算符详解运算符是Java语言中用于执行数据操作的符号。Java提供了丰富的运算符按照功能可以分为以下几类算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、三元运算符等。理解每种运算符的用法、注意事项及优先级是编写正确表达式的基础。一、算术运算符用于基本的数学运算操作数必须是数值类型整数或浮点数但也可用于字符串连接。运算符含义示例结果加法5 38-减法5 - 32*乘法5 * 315/除法5 / 31整数除法%取模余数5 % 32自增i或i变量1--自减i--或--i变量-1注意点整数除法两个整数相除结果仍是整数小数部分直接舍弃不是四舍五入。若想得到浮点结果至少一个操作数为浮点类型。int a 5, b 2; System.out.println(a / b); // 输出 2 System.out.println(a / 2.0); // 输出 2.5取模运算在Java中取模结果符号与被除数左操作数相同。System.out.println(5 % 2); // 1 System.out.println(5 % -2); // 1 System.out.println(-5 % 2); // -1 System.out.println(-5 % -2); // -1自增/自减前缀形式i先加1再使用变量的值。后缀形式i先使用变量的值再加1。int i 3; int j i; // i4, j4 int k i--; // k4, i3字符串连接运算符可用于连接字符串。如果任一操作数是字符串则另一个操作数会被转换为字符串。System.out.println(Hello World); // 输出: Hello World System.out.println(结果 123); // 输出: 结果123 System.out.println(1 2 3); // 输出: 33二、关系运算符比较运算符用于比较两个值的大小或相等关系返回布尔类型true/false。运算符含义示例结果等于5 3false!不等于5 ! 3true大于5 3true小于5 3false大于等于5 3true小于等于5 3false注意点关系运算符的结果只能用于布尔表达式如if条件。比较基本类型时比较的是数值是否相等。比较引用类型时比较的是两个引用是否指向内存中的同一个对象地址相同。若需比较对象内容应使用equals()方法。String s1 new String(abc); String s2 new String(abc); System.out.println(s1 s2); // false不同对象 System.out.println(s1.equals(s2)); // true内容相同三、逻辑运算符用于连接布尔表达式返回布尔值。运算符含义用法说明短路与a b两者都为真才真若a为假则不计算b||短路或a || b两者有一个为真即真若a为真则不计算b!逻辑非!a取反逻辑与非短路a b两者都为真才真总是计算两边|逻辑或非短路a | b两者有一个为真即真总是计算两边^逻辑异或a ^ b相同为假不同为真短路特性若左边为false右边表达式不会被计算因为结果已确定为false。||若左边为true右边表达式不会被计算因为结果已确定为true。示例int a 5, b 0; if (b ! 0 a / b 1) { // 短路b!0为false不计算a/b避免除零异常 // ... }非短路和|总是计算两边常用于位运算见下在逻辑表达式中较少使用除非需要确保两边都执行比如方法调用有副作用。异或^对于布尔值true ^ truefalsetrue ^ falsetrue。四、位运算符对整数类型的二进制位进行操作操作数只能是整数类型byte, short, int, long, char。运算符含义示例说明按位与a b同1则1否则0|按位或a | b有1则1否则0^按位异或a ^ b相同为0不同为1~按位取反~a0变11变0包括符号位左移a n左移n位低位补0相当于乘以2ⁿ右移a n右移n位高位补符号位算术右移无符号右移a n右移n位高位补0逻辑右移注意点按位运算对补码形式操作。移位运算可能溢出需注意数据类型范围。对byte、short、char进行移位前会自动提升为int结果也是int。int a 5; // 二进制 0101 int b 3; // 二进制 0011 System.out.println(a b); // 0001 1 System.out.println(a | b); // 0111 7 System.out.println(a ^ b); // 0110 6 System.out.println(~a); // 取反111...1010负数具体看int位数 System.out.println(a 1); // 1010 10 System.out.println(a 1); // 0010 2正数高位补0 int c -5; // 负数右移高位补1 System.out.println(c 1); // 结果仍为负数 System.out.println(c 1); // 高位补0变成正大数应用场景底层系统编程、加密算法、高效乘除运算左移代替乘2右移代替除2、状态标志位操作等。五、赋值运算符将右边的值赋给左边的变量。除了基本还有复合赋值运算符运算符含义示例等价于简单赋值a b将b的值赋给a加后赋值a ba a b-减后赋值a - ba a - b*乘后赋值a * ba a * b/除后赋值a / ba a / b%取模后赋值a % ba a % b位与后赋值a ba a b|位或后赋值a | ba a | b^位异或后赋值a ^ ba a ^ b左移后赋值a ba a b右移后赋值a ba a b无符号右移后赋值a ba a b注意点赋值运算符优先级很低通常最后执行。复合赋值会自动进行类型转换隐式强制转换可能引起精度损失。byte b 10; b 5; // 编译通过等价于 b (byte)(b 5) // b b 5; // 编译错误b5结果为int需强制转换b (byte)(b 5);直接使用b b 5会导致编译错误因为Java中byte类型参与算术运算时会自动提升为int类型需要显式强制转换才能赋值回byte变量。六、三元运算符条件运算符Java中唯一的三目运算符格式为条件 ? 表达式1 : 表达式2若条件为true整个表达式值为表达式1否则为表达式2。示例int a 10, b 20; int max (a b) ? a : b; // max 20注意点表达式1和表达式2的类型需兼容否则会进行类型提升。三元运算符可以嵌套但建议保持简洁以提高可读性。七、运算符优先级当表达式包含多个运算符时优先级决定了运算顺序。优先级高的先计算相同优先级按结合性从左到右或从右到左计算。优先级运算符分类运算符结合性1后缀exprexpr--左到右2前缀expr--exprexpr-expr~!右到左3乘除取模*/%左到右4加减-左到右5移位左到右6关系小于、大于instanceof左到右7相等!左到右8逻辑与位与左到右9逻辑异或位异或^左到右10逻辑或位或|左到右11逻辑与短路左到右12逻辑或短路||左到右13条件三元? :右到左14赋值-*/%|^右到左记忆技巧可以使用口诀或参考表但重要的是写代码时若不确定优先级用括号()明确指定顺序提高可读性。八、类型转换与运算符的结合数值提升当进行算术运算时如果操作数类型不同Java会自动进行类型提升将较小的类型转换为较大的类型byte-short-int-long-float-double然后再计算。复合赋值中的自动转换如前所述复合赋值会隐式将结果转换为左侧类型可能丢失精度。字符串连接优先级作为字符串连接时优先级高于赋值但低于算术运算。注意结合方向。九、常见陷阱与注意事项与混淆if (a 1)在Java中会编译错误因为a1是赋值结果不是布尔值但若a是布尔类型则a true是合法表达式可能造成逻辑错误。浮点数相等比较由于浮点数精度问题不要直接用比较浮点数是否相等应使用差值小于某个极小值来判断。短路与、或的使用利用短路特性可以简化代码并避免异常。移位操作对负数的影响注意和的区别尤其是对负数。优先级错误例如a 2 1等价于a (21)因为优先级高于实际可能不是期望的(a 2) 1。所以加括号清晰。十、总结类别主要运算符返回值类型注意事项算术运算符-*/%--数值型整数除法、自增前后缀关系运算符!boolean引用类型用equals逻辑运算符||!|^boolean短路特性位运算符|^~整数型对补码操作移位有区别赋值运算符-*/%等根据左侧类型复合赋值含隐式转换三元运算符? :根据表达式1和2的类型简洁但勿滥用

相关文章:

JavaSE基础04-基本运算符

运算符详解运算符是Java语言中用于执行数据操作的符号。Java提供了丰富的运算符,按照功能可以分为以下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、三元运算符等。理解每种运算符的用法、注意事项及优先级是编写正确表达式的基础。…...

AutoGen详解:专注多智能体协作,让AI Agent“会分工、能协同”

在AI智能体(Agent)技术向工业级落地迈进的过程中,单一智能体的能力边界逐渐显现——面对复杂的企业级任务(如多步骤数据分析、跨领域项目协作、全流程自动化办公),单个智能体往往难以兼顾“检索、推理、执行…...

【LangChain专栏】Retrieval 进阶:文本分块Text Splitting实践

引言LangChain文档加载将不同格式的私有知识库转换为了标准化的Document对象。但这只是RAG落地的第一步——加载后的长文档无法直接用于向量化与检索,不合理的文本处理会直接导致检索失准、LLM回答效果大幅下降。RAG效果的三大核心环节:文本分块&#xf…...

后端开发必懂:接口设计、权限、日志、异常处理全套思路

后端开发必懂:接口设计、权限、日志、异常处理全套思路在后端开发的征途中,新手往往沉迷于框架的语法和数据库的CRUD,而资深工程师则更关注系统的健壮性、可维护性和安全性。接口设计、权限控制、日志记录和异常处理,构成了后端架…...

315曝光“AI投喂乱象”后,Java程序员求职更要警惕

我们是由枫哥组建的IT技术团队,成立于2017年,致力于帮助IT从业者提供实力,成功入职理想企业,我们提供一对一学习辅导,由知名大厂导师指导,分享Java技术、参与项目实战等服务,并为学员定制职业规…...

亚古数据:如何调取新加坡公司的原始工商文档?

在全球化的今天,越来越多的中国企业开始涉足海外市场,而新加坡作为亚洲重要的金融中心之一,吸引了众多国内外投资者的目光。对于与新加坡公司有业务往来的中国企业而言,了解对方的真实背景及经营状况显得尤为重要。这时&#xff0…...

2026.3.15 CAD学习七--AL对齐指令,对齐缩放,UCS用户坐标、PLAN重置视图

UCS用户坐标:使用UCS将坐标改为与斜边同向 用法:UCS--空格--先指定原点,再指定x轴y轴方向;Z轴方向由右手方向确定 恢复默认--UCS--空格--空格 输入PLAN--空格--空格--可以正视当前坐标🌸效果如示例一【UCS用户坐标】--…...

探索Comsol在焊接模拟领域的奇妙之旅:熔池传热传质与微观凝固组织模拟

comsol激光焊接、电弧焊接熔池传热传质 微观凝固组织模拟在焊接技术的研究中,理解熔池内的传热传质过程以及微观凝固组织的形成机制至关重要。而Comsol作为一款强大的多物理场仿真软件,为我们深入探究激光焊接和电弧焊接提供了绝佳的平台。 激光焊接与电…...

AI 数学的秘密花园:25.潜空间是什么?(概念乐园 vs 像素现实世界)

第25章:潜空间是什么?(概念乐园 vs 像素现实世界) 上一章咱们把噪声调度像剥洋葱一样慢慢揭开面纱,是不是觉得扩散模型的节奏感满分了?今天咱们要钻进扩散模型的“后台小房间”——潜空间(Latent Space)。简单说,就是为什么AI不在像素世界里洗照片,而跑到一个更小、…...

吊装助理地基承载力核算模块使用教程

一、功能介绍与使用场景1.1 模块定位本模块是吊装工程方案设计中,继支腿反力计算或吊车选型之后的关键安全验算环节。它解决了在计算出吊车最大支腿反力后或确地起重机型号和站位后,必须确认起重机的接地压强是否超出施工现场地基承载力这一核心问题。模…...

数据库优化:从慢查询到索引,让系统快 10 倍

数据库优化:从慢查询到索引,让系统快 10 倍在2026年的今天,尽管硬件性能飞速提升,内存价格日益低廉,但**数据库(Database)**依然是绝大多数系统架构中的性能瓶颈。无论你的微服务拆分得多么细致…...

探索配电网有功电压控制的多智能体强化学习之旅

基于配电网有功电压控制的多智能体强化学习,python代码,可以发中文核心或者中文ei,非常好的代码!在电力系统领域,配电网的有功电压控制一直是个关键且富有挑战的课题。随着技术的发展,多智能体强化学习逐渐…...

mes系统排名

在当前制造业数字化转型的大潮中,MES系统作为连接计划层与控制层的桥梁,其重要性日益凸显。然而,随着市场上MES系统的种类和数量激增,企业在选择时面临着诸多挑战。传统的选择标准往往忽略了中小制造企业的实际需求,导…...

实测3款主流论文降重工具!哪个网站更好用性价比更高?

实测3款主流论文降重工具!哪个网站更好用性价比更高? 最近后台快被私信炸毁了,清一色都是同一个问题:“论文重复率80%,学校用知网查,有没有靠谱的降重工具?”作为一个帮三个学弟学妹成功通过盲审…...

《尽管去做》

焦虑源于缺乏控制力、组织管理、准备与行动不足,要通过系统化的行动管理,实现头脑清醒、轻松掌控事务的心静如水高效状态,做到对事务既不反应过度,也不反应不足。管理的核心是管理行动,而非时间、信息或重要事项&#…...

莱文斯坦距离基本原理

关键词:Levenshtein Distance 一、说明 莱文斯坦距离是用于衡量两个序列之间差异的字符串度量计算将一个字符串转换为另一个字符串所需的最少单字符编辑次数——插入、删除或替换。该算法由弗拉基米尔列文斯坦于1965年开发,广泛应用于拼写检查器、DNA分析…...

低空经济浪潮下的无人机结构设计与散热解决方案

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...

在线问诊系统, 在线问诊平台, 互联网医院,2026java毕业设计项目, 简历项目, 个人学习项目

这是我们码上启航平台的一个新的原创项目【在线问诊平台】。项目是基于SpringBoot3vue3的前后端分离项目,该项目提供完整源代码SQL 脚本核心流程图和文档。可访问码上启航平台以获得“在线问诊平台”项目的源代码 一、项目功能描述 线上问诊系统是一个基于Web的在线…...

基于最小二乘支持向量机(LSSVM)的多输出数据回归预测

基于最小二乘支持向量机(LSSVM)的多输出数据回归预测 LSSVM多输出回归 matlab代码注:暂无Matlab版本要求 -- 推荐 2018B 版本及以上在数据处理与预测领域,最小二乘支持向量机(Least Squares Support Vector Machine, LSSVM)是一种…...

2026 年 3 月 15 日刷题

今天的题目是有关 BFS 广度优先搜索的。BFS 可以理解是从树的顶端一层一层往下逐层遍历。维护一个队列,在遍历过程中不断加入符合要求的元素,最后当队列为空时返回。207 课程表这道题目是拓扑排序,就是将一张有向无环图按照层次来遍历&#x…...

接收单元之变:SPAD-SoC如何重构激光雷达的“视网膜”

本文将从应用的角度出发,深入探讨SPAD-SoC在激光雷达中的技术原理、核心优势、面临挑战以及最新的产业化进展,论证为何SPAD-SoC是未来激光雷达接收单元不可逆转的发展方向。 01 接收单元技术谱系:从APD到SPAD-SoC 在深入讨论SPAD-SoC之前,我们有必要先厘清当前车载激光雷…...

2026年三防布批发TOP10企业揭晓,谁将领跑行业?

“老张,今年三防布的订单又爆了!”上周跟江苏南通做篷布批发的王老板吃饭,他举着手机给我看后台数据——单月出货量突破12万米,同比暴涨37%。这数据让我想起去年行业论坛上专家那句话:“2026年三防布市场规模将突破80亿…...

4节点光储直流微网:多目标控制下的光伏MPPT与储能双向DCDC的二次优化与多智能体一致性研究

4节点光储直流微网 领域:多目标控制、多智能体一致性、二次优化 15kW、400V级,阐述如下 : 光伏mppt:采用粒子群算法 储能双向DCDC: 电流内环采用模型预测控制 电压环采用分布式控制(含通讯) 初级控制采用下垂droop 二次控制采用差异性并加入电…...

CUDA编程学习(四)内存拷贝

本篇文章介绍如何把存储在主机内存上的数据拷贝到存储到设备显卡的内存上。我们将逐步分析代码&#xff0c;完整代码如下#include <cuda_runtime.h> #include "../common/common.h" #include <stdio.h>void initialData(float *ip,int size) {time_t t;s…...

2026多平台后台模板,包括:Html、Laravel、react、VUE、dotnet、angular

✨ 核心亮点✅ 全技术栈覆盖&#xff1a;囊括 Html 静态模板、Laravel 后端框架模板、React/VUE/Angular 前端框架模板、dotnet 微软系模板&#xff0c;一套搞定多场景开发&#xff1b;✅ 企业级标准&#xff1a;模板内置权限管理、数据可视化、表单校验、菜单路由等高频功能&a…...

基于MATLAB的Kmeans自动寻找最佳聚类中心App:‘手肘法‘确定k值与聚类结果可视化

基于MATLAB的Kmeans自动寻找最佳聚类中心App。 通过简单的界面操作&#xff0c;能够实现手肘法确定kmeans算法的最佳聚类数&#xff0c;并自动进行聚类&#xff0c;画图。 点击加载要聚类的数据——点击手肘法计算k值按键——根据生成的不同K值聚类偏差图&#xff0c;获得最佳聚…...

计算机毕业设计 java 虚拟股票交易系统 Java+SpringBoot 模拟股票交易平台 Web 版股市虚拟交易实训系统

计算机毕业设计 java 虚拟股票交易系统 z00to9&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享金融投资学习需求增长&#xff0c;新手缺乏安全实操环境&#xff0c;真实股票交易风险高、体验差…...

计算机毕业设计springboot基于Java的高校毕业实习管理系统的设计与实现 基于SpringBoot的高校毕业生实习信息管理平台的设计与实现 基于Java技术的高校学生顶岗实习综合服务平台

计算机毕业设计springboot基于Java的高校毕业实习管理系统的设计与实现jctd2693 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着高等教育的普及&#xff0c;每年有大量的学生…...

基于PSCAD仿真研究:三相空载输电线路过电压保护与断路器分合闸策略分析

pscad仿真 采用pscad搭建220kv三相空载输电线路&#xff0c;仿真合空线&#xff0c;切空线过电压&#xff0c;仿真避雷器&#xff0c;合闸电阻法抑制合闸过电压&#xff0c;仿真控制断路器三相分别在线路相电压为0&#xff0c;30&#xff0c;60&#xff0c;90分合闸的抑制过电压…...

计算机毕业设计 java 校园闲置交易平台 Java+SpringBoot 校园闲置物品交易平台 Web 版高校二手物品交换系统

计算机毕业设计 java 校园闲置交易平台 gb3869&#xff08;配套有源码 程序 mysql 数据库 论文&#xff09;本套源码可以先看具体功能演示视频领取&#xff0c;文末有联 xi 可分享随着校园物资丰富与环保理念普及&#xff0c;学生闲置物品增多&#xff0c;线下交易渠道窄、信息…...