Java:运算符
Java运算符一. 运算符二. 算术运算符2.1 基本四则运算符加减乘除模( - * / %)2.2 增量运算符 - * %2.3 自增/自减运算符 --三. 关系运算符四. 逻辑运算符(重点)4.1 逻辑与 4.2 逻辑 ||4.3 逻辑非 !4.4 短路求值五. 位运算符5.1 按位与 5.2 按位或 |:5.3 按位取反 ~5.4 按位异或 ^六. 移位运算(了解)6.1 左移 6.2 右移 6.3 无符号右移 七. 条件运算符八. 运算符的优先级一. 运算符即对操作数进行操作时的符号不同运算符操作的含义不同。Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下算术运算符( - * /)、关系运算符( )、逻辑运算符、位运算符、移位运算符以及条件运算符等。二. 算术运算符2.1 基本四则运算符加减乘除模( - * / %)inta20;intb10;System.out.println(ab);// 30System.out.println(a-b);// 10System.out.println(a*b);// 200System.out.println(a/b);// 2System.out.println(a%b);// 0 ---模运算相当于数学中除法的余数注意都是二元运算符使用时必须要有左右两个操作数int / int 结果还是int类型而且会向下取整inta3;intb2;// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整即⼩数点之后全部舍弃掉了System.out.println(a/b);// 如果要得到数学中的结果可以使⽤如下⽅式doubleda*1.0/b;System.out.println(d);• 做除法和取模时右操作数不能为0inta1;intb0;System.out.println(a/b)// 运⾏结果//Exception in thread main java.lang.ArithmeticException: / by zero,at Test.main(Test.java:5)% 不仅可以对整型取模也可以对double类型取模但是没有意义⼀般都是对整型取模的C语言不能使用小数System.out.println(11.5%2.0);// 运⾏结果//1.5两侧操作数类型不一致时向类型大的提升System.out.println(10.2);// 的左侧是int右侧是double在加之前int被提升为double 故输出1.2取余的正负取决于左边的操作数2.2 增量运算符 - * %该种类型运算符操作完成后会将操纵的结果赋值给左操作数。inta1;a2;// 相当于 a a 2System.out.println(a);// 输出3a-1;// 相当于 a a - 1System.out.println(a);// 输出2a*3;// 相当于 a a * 3System.out.println(a);// 输出6a/3;// 相当于 a a / 3System.out.println(a);// 输出2a%3;// 相当于 a a % 2System.out.println(a);// 输出2注意增量运算符在计算的时候可以不进行强制类型转换doublea10.4;intb10;ba;//不会报错bba;//此时会编译报错等号右边被提升为了double类型2.3 自增/自减运算符 –是给变量的值1–是给变量的值-1。inta1;a;// 后置 表⽰给a的值加1此时a的值为2System.out.println(a);// 注意后置是先使⽤变量原来值表⽰式结束时给变量1因此输出2System.out.println(a);// 输出3a;// 前置 表⽰给a的值加1System.out.println(a);// 注意前置是先给变量1然后使⽤变量中的值因此输出5System.out.println(a);// 输出5// --操作符给操作-1与含义类似注意如果单独使用【前置】和【后置】没有任何区别如果混合使用【前置】先1然后使用变量1之后的值【后置】先使用变量原来的值表达式结束时给变量1只有变量才能使用自增/自减运算符常量不能使用因为常量不允许被修改。三. 关系运算符关系运算符主要有六个: ! 其计算结果是 true 或者 false。inta10;intb20;// 注意在Java中 表⽰赋值要与数学中的含义区分// 在Java中 表⽰相等System.out.println(ab);// falseSystem.out.println(a!b);// trueSystem.out.println(ab);// trueSystem.out.println(ab);// falseSystem.out.println(ab);// trueSystem.out.println(ab);// false注意当需要多次判断时不能连着写比如3 a 5Java程序与数学中是有区别的(ture5)四. 逻辑运算符(重点)逻辑运算符主要有三个: || !运算结果都是boolean类型。4.1 逻辑与 语法规则表达式1 表达式2左右表达式必须是boolean类型的结果。相当于现实生活中的且两个表达式都为真结果才是真只要有一个是假结果就是假。表达式1表达式2结果真真真真假假假真假假假假inta1;intb2;System.out.println(a1b2);// 左为真 且 右为真 则结果为真System.out.println(a1b100);// 左为真 但 右为假 则结果为假System.out.println(a100b2);// 左为假 但 右为真 则结果为假System.out.println(a100b100);// 左为假 且 右为假 则结果为假4.2 逻辑 ||语法规则表达式1 || 表达式2左右表达式必须是boolean类型的结果。相当于现实生活中的或表达式1表达式2结果真真真真假真假真真假假假inta1;intb2;System.out.println(a1||b2);// 左为真 且 右为真 则结果为真System.out.println(a1||b100);// 左为真 但 右为假 则结果也为真System.out.println(a100||b2);// 左为假 但 右为真 则结果也为真System.out.println(a100||b100);// 左为假 且 右为假 则结果为假4.3 逻辑非 !语法规则! 表达式真变假假变真。表达式结果真假假真4.4 短路求值 和 || 遵守短路求值的规则System.out.println(102010/00);// 打印 falseSystem.out.println(1020||10/00);// 打印 true我们都知道,计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行,说明 10 / 0 并没有真正被求值。注意对于 ,如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。对于 ||,如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式. 和 | 如果表达式结果为 boolean 时,也表示逻辑运算. 但与 || 相比,它们不支持短路求值。System.out.println(102010/00);// 程序抛出异常System.out.println(1020|10/00);// 程序抛出异常五. 位运算符Java 中数据存储的最小单位是字节而数据操作的最小单位是比特位。字节是最小的存储单位每个字节是由8个二进制比特位组成的多个字节组合在⼀起可以表示各种不同的数据。位运算符主要有四个 | ~ ^除 ~ 是一元运算符外其余都是二元运算符。位操作表示按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算。5.1 按位与 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.inta10;intb20;System.out.println(ab);进行按位运算, 需要先把 10 和 20 转成二进制, 分别为 1010 和 101005.2 按位或 |:如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。inta10;intb20;System.out.println(a|b);注意当 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算5.3 按位取反 ~如果该位为 0 则转为 1, 如果该位为 1 则转为 0inta0xf;System.out.printf(%x\n,~a)注意0x 前缀的数字为十六进制数字。十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进制位。0xf 表示10进制的 15, 也就是二进制的 1111。printf 能够格式化输出内容, %x 表示按照示十六进制输出。\n 表示换行符5.4 按位异或 ^如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1inta0x1;intb0x2;System.out.printf(%x\n,a^b);注意如果两个数相同则异或的结果为0找只出现一次的数字在这里插入图片描述六. 移位运算(了解)移位运算符有三个: 都是二元运算符且都是按照二进制比特位来运算的。6.1 左移 最左侧位不要了, 最右侧补0。inta0x10;System.out.printf(%x\n,a1);// 运⾏结果(注意, 是按⼗六进制打印的)20注意向左移位时丢弃的是符号位因此正数左移可能会变成负数。6.2 右移 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)inta0x10;System.out.printf(%x\n,a1);// 运⾏结果(注意, 是按⼗六进制打印的)8intb0xffff0000;System.out.printf(%x\n,b1);// 运⾏结果(注意, 是按⼗六进制打印的)ffff80006.3 无符号右移 最右侧位不要了, 最左侧补 0inta0xffffffff;System.out.printf(%x\n,a1);// 运⾏结果(注意, 是按⼗六进制打印的)7fffffff注意左移 1 位, 相当于原数字 * 2左移 N 位, 相当于原数字 * 2 的N次方. 【针对正数而言】右移 1 位, 相当于原数字 / 2右移 N 位, 相当于原数字 / 2 的N次方。【针对正数而言】由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替. 【针对正数而言】移动负数位或者移位位数过大都没有意义。七. 条件运算符条件运算符只有⼀个表达式1 ? 表达式2 : 表达式3当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法。// 求两个整数的最⼤值inta10;intb20;intmaxab?a:b;注意表达式2和表达式3的结果要是同类型的除非能发生类型隐式类型转换inta10;intb20;intcab?1:2.0;表达式不能单独存在其产生的结果必须要被使用。inta10;intb20;ab?a:b;// 报错Error:(15, 14) java: 不是语句八. 运算符的优先级在一条表达式中各个运算符可以混合起来进行运算但是运算符的优先级不同比如* 和 / 的优先级要高于 和 -。// 求a和b的平均值inta10;intb20;intca(b-a)1;System.out.println(c);上述表达式中由于 的优先级要高于 , 因此a先和b-a的结果做加法整体为20最后再进行右移因此结果为10。在这里插入图片描述

相关新闻

YASB CPU 组件完全指南:配置、直方图与弹窗监控的源码级解析

YASB CPU 组件完全指南:配置、直方图与弹窗监控的源码级解析

桌面应用 【免费下载链接】yasb A highly configurable Windows status bar written in Python. 项目地址: https://gitcode.com/gh_mirrors/yas/yasb 点击查看 免费下载 YASB(Yet Another Status Bar)是一款使用 Python 编写的高可配置 Wi…

2026/10/12 5:31:15 阅读更多 →
GDAL `gdal raster sieve` 详解:用大小阈值合并清除栅格小面(4/8 连通、掩膜与流水线用法)

GDAL `gdal raster sieve` 详解:用大小阈值合并清除栅格小面(4/8 连通、掩膜与流水线用法)

GIS遥感数据工程 【免费下载链接】gdal GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats. 项目地址: https://gitcode.com/gh_mirrors/gd/gdal 点击查看 免费下载 本文是 GDAL 官方命令文档 gdal_raster_s…

2026/10/12 5:31:15 阅读更多 →
团队里那个拼命干活却不计工资的人,为什么让所有人都不舒服?

团队里那个拼命干活却不计工资的人,为什么让所有人都不舒服?

1. 为什么“不计较工资”反而让人觉得可怕1.1 高光不是亮点,是照妖镜——对比压力的第一层真相这条帖子之所以能在各个职场群里被反复转发,是因为它戳中了一个所有人都不敢明说的隐性共识:团队里那个最拼命、最不讨价还价的人,往往…

2026/10/12 5:31:15 阅读更多 →

最新新闻

UE5环境音效进阶:基于Niagara风场与MetaSound的Sound Grid实现方案

UE5环境音效进阶:基于Niagara风场与MetaSound的Sound Grid实现方案

在 UE5 里做环境音效,最容易被低估的其实是风。贴图、粒子特效、光照大家都会花大量时间,唯独“风”这种看不见摸不着的声音,经常被随手塞一段循环音频糊弄过去。这个系列的第二篇,我把方案叫做 Sound Grid——核心思路很简单&…

2026/10/12 6:11:37 阅读更多 →
具身智能创新原理(128):元认知不确定性量化与主动探索融合机制研究

具身智能创新原理(128):元认知不确定性量化与主动探索融合机制研究

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

2026/10/12 6:11:37 阅读更多 →
Cyclops.PdfKit实战:PDF模板填充生成合同与报表的完整指南

Cyclops.PdfKit实战:PDF模板填充生成合同与报表的完整指南

1. 为什么选择模板填充方案?——从"画表格"到"填表格"的思路转变先聊聊我最初遇到的场景。公司内部要上电子签章系统,重点是各种协议、回执、资质证书的自动生成。起初用代码直接绘制PDF,写了一堆定位坐标、边框绘制、文…

2026/10/12 6:11:37 阅读更多 →
【论文复现】基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)

【论文复现】基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 &#x1f381…

2026/10/12 6:11:37 阅读更多 →
Knowledge Work Plugins:从速记到复习的知识管理插件实战

Knowledge Work Plugins:从速记到复习的知识管理插件实战

"knowledge-work-plugins"这个名字,最早是某开发者在自己工作流里折腾出来的一套插件集合。它要解决的是知识工作者特别常见的一类问题:信息散落在编辑器、浏览器、备忘录、聊天记录里,真到用的时候永远找不到,记的时候…

2026/10/12 6:11:37 阅读更多 →
Apollo配置中心搭建避坑指南:从环境准备到生产运维的完整实践

Apollo配置中心搭建避坑指南:从环境准备到生产运维的完整实践

1. 为什么Apollo配置中心值得折腾,以及它到底难在哪第一次接触Apollo是在一个微服务项目里,当时团队有十几个服务,每个服务都有自己的配置文件,改一个数据库连接池大小要挨个登录服务器改properties文件再重启,运维同事…

2026/10/12 6:10:37 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →