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

Java 运算符超详细整理,从入门到精通

运算符是用来对变量、字面量进行运算操作的符号,是 Java 语法体系中不可或缺的一部分。本文将全面讲解算数运算符、字符串拼接、自增自减运算符、类型转换、赋值运算符、关系运算符、逻辑运算符、三元运算符、运算符优先级几大知识点,搭配语法讲解、代码案例、实战练习与易错点分析,零基础也能快速掌握,适合日常学习、代码练习与面试复习。

一、算数运算符

1.1 运算符介绍

算数运算符主要用于完成数学加减乘除运算,是最基础的运算符,具体规则如下:

符号作用说明
+常规数学加法运算
-常规数学减法运算
*等价于数学中的乘号×
/等价于数学中的除号÷,取除法运算的商
%取余获取两个数据做除法后的余数

1.2 核心注意事项

  1. 两个整数相除,结果仍然是整数,只会保留商,直接舍弃小数部分;
  2. 如果想要得到小数结果,运算过程中必须有浮点数参与;
  3. /%区分:/取商,%取余数。

1.3 实战案例:数值拆分

需求:将整数123拆分出个位、十位、百位并打印输出。

拆分公式
  • 个位:数值% 10
  • 十位:数值/ 10 % 10
  • 百位:数值/ 10 / 10 % 10
  • 千位:数值/ 10 / 10 / 10 % 10
代码实现
public class ArithmeticDemo { public static void main(String[] args) { int num = 123; // 计算个位 int ge = num % 10; // 计算十位 int shi = num / 10 % 10; // 计算百位 int bai = num / 10 / 10 % 10; System.out.println("整数123的个位为:" + ge); System.out.println("整数123的十位为:" + shi); System.out.println("整数123的百位为:" + bai); } }

运行结果:

整数123的个位为:3 整数123的十位为:2 整数123的百位为:1

1.4 小结

整数相除无法直接得到小数,必须加入浮点数参与运算;多位数拆分可按照「连续整除 + 取余」的通用公式实现。

二、字符串拼接

2.1 规则说明

+运算符两侧任意一边出现字符串时,+不再是加法运算符,而是字符串连接符,作用是将前后内容拼接为一个完整字符串。

2.2 代码示例

public class StringJoinDemo { public static void main(String[] args) { // 纯数字:加法运算 System.out.println(1 + 23); // 包含字符串:拼接操作 System.out.println("年龄为:" + 23); // 从左至右依次运算,先算1+99,再和字符串拼接 System.out.println(1 + 99 + "年黑马"); // 先拼接字符串,后续数字全部参与拼接 System.out.println("年龄为:" + 23 + 1); // 括号提升运算优先级,先计算括号内加法,再拼接 System.out.println("年龄为:" + (23 + 1)); } }

运行结果:

24 年龄为:23 100年黑马 年龄为:231 年龄为:24

2.3 小结

表达式中一旦出现字符串,+就执行字符串拼接逻辑;可通过()改变运算顺序,优先完成数学计算。

三、自增自减运算符

3.1 运算符介绍

符号作用说明
++自增变量自身数值加 1
--自减变量自身数值减 1

++--可以写在变量前面或者变量后面,使用规则分两种场景。

3.2 使用规则

  1. 单独使用++--放在变量前、后,效果完全一致,都是变量自增 / 自减。
  2. 参与运算、打印、赋值等混合使用
    • 变量++先操作,后自增
    • ++变量先自增,后操作
  3. 硬性要求:++--只能操作变量,不能直接作用于字面量。

3.3 小结

自增自减核心区分点在于是否参与其他运算;单独使用位置无区别,混合使用严格遵循「前先变,后后变」规则。

四、数据类型转换

Java 中不同数据类型之间运算、赋值时,会自动触发类型转换,分为隐式转换(自动转换)强制转换两类。

4.1 隐式转换(自动转换)

4.1.1 基础规则

取值范围小的数值 / 变量,赋值给取值范围大的变量,程序自动完成转换,无需手动编写代码。数据类型范围从小到大顺序:byteshortintlongfloatdoublechar类型也会参与隐式转换。

4.1.2 运算中的隐式转换
  1. 不同范围数据运算时,范围小的类型会自动提升为范围大的类型,再进行计算,最终结果为大范围类型。
  2. 特殊规则:byteshortchar三者互相运算时,会统一先提升为 int 类型,再参与计算。
4.1.3 代码示例
public class AutoConvertDemo { public static void main(String[] args) { // 基础隐式转换:int 转 double int a = 10; double b = a; System.out.println(b); // 不同类型运算:int 提升为 double int num1 = 10; double num2 = 12.3; double res1 = num1 + num2; System.out.println(res1); // byte 运算自动提升为 int byte c1 = 10; byte c2 = 20; int res2 = c1 + c2; System.out.println(res2); // char 提升为 int(依据ASCII编码) int x = 1; char y = 'a'; int res3 = x + y; System.out.println(res3); } }

4.2 强制类型转换(显式转换)

4.2.1 基础规则

取值范围大的数值 / 变量,赋值给取值范围小的变量,无法自动转换,必须手动强制转换。语法格式:目标数据类型 变量名 = (目标数据类型) 待转换数据;

4.2.2 风险提示

强制类型转换可能造成精度丢失、数值溢出,使用时需要谨慎。

4.2.3 代码示例
public class ForceConvertDemo { public static void main(String[] args) { double d = 12.3; // double 强制转为 int,舍弃小数部分 int num = (int) d; System.out.println(num); } }

4.3 小结

  1. 隐式转换:小范围 → 大范围,自动执行;运算时小类型统一提升为大类型。
  2. byteshortchar运算一律提升为int
  3. 强制转换:大范围 → 小范围,手动书写语法,存在数据丢失风险。

五、赋值运算符

5.1 运算符分类与说明

分为基础赋值运算符和扩展赋值运算符:

符号名称作用说明
=基础赋值a=10,将右侧数值 10 赋值给左侧变量 a
+=加后赋值a += b等价于a = a + b
-=减后赋值a -= b等价于a = a - b
*=乘后赋值a *= b等价于a = a * b
/=除后赋值a /= b等价于a = a / b
%=取余后赋值a %= b等价于a = a % b

5.2 重要特性

扩展赋值运算符底层隐含强制类型转换,无需手动添加强转语法。

5.3 小结

=是最基础的赋值符号;+=-=等扩展运算符简化代码写法,且自带强制转换效果,开发中使用频率很高。

六、关系运算符

6.1 运算符说明

关系运算符用于判断两个数据的大小、相等关系,运算结果一定是 boolean 类型(true /false)

符号说明
==判断两个值是否相等,相等为 true,否则为 false
!=判断两个值是否不相等,不相等为 true,否则为 false
>判断左侧值是否大于右侧值
>=判断左侧值是否大于等于右侧值
<判断左侧值是否小于右侧值
<=判断左侧值是否小于等于右侧值

6.2 易错提醒

切勿将判断相等的==和赋值符号=混淆,二者语法、作用完全不同。

6.3 小结

关系运算符多用于条件判断,结果只有truefalse两种,重点区分===

七、逻辑运算符

逻辑运算符用于连接多个布尔表达式、布尔值,实现多条件组合判断,最终结果仍为boolean类型。

7.1 基础逻辑运算符

符号名称运算规则
&逻辑与所有条件都为 true,结果才为 true;遇 false 则整体为 false
``逻辑或任意一个条件为 true,结果就为 true;遇 true 则整体为 true
!逻辑非取反:true 变 false,false 变 true
^逻辑异或两边结果不同为 true,相同为 false

7.2 短路逻辑运算符

短路与、短路或是开发中最常用的运算符,具备短路特性

符号名称规则
&&短路与&逻辑一致;若左侧为 false,右侧代码不再执行(短路)
``短路或和 `` 逻辑一致;若左侧为 true,右侧代码不再执行(短路)

7.3 小结

  1. 普通&|:无论左侧结果如何,右侧表达式都会执行;
  2. 短路&&||:具备短路效果,执行效率更高;
  3. 实际开发中,优先使用&&||!

八、三元运算符

8.1 语法格式

判断条件 ? 值1 : 值2;

8.2 执行流程

  1. 先计算布尔类型的判断条件;
  2. 如果条件结果为true,最终运算结果取值 1
  3. 如果条件结果为false,最终运算结果取值 2

8.3 作用总结

根据条件二选一,简化简单的分支判断代码,是精简版的条件语句。

九、运算符优先级

9.1 优先级规则

Java 运算符存在默认执行优先级,优先级高的运算符会优先运算;日常开发中,不需要死记硬背优先级,可以使用小括号()手动改变运算顺序,让代码逻辑更清晰。

9.2 代码示例

public class PriorityDemo { public static void main(String[] args) { int a = 10; int b = 20; // 默认优先级:&& 优先级高于 || System.out.println(a > b || a < b && a > b); // 括号提升整体优先级 System.out.println((a > b || a < b) && a > b); } }

9.3 小结

复杂运算建议使用()划分运算顺序,降低代码阅读和出错概率。

十、全文总结

  1. 算数运算符:完成数学运算,整数相除取商不取小数,%专门用于取余;
  2. 字符串拼接+遇到字符串变为连接符,从左至右依次执行;
  3. 自增自减:单独使用无区别,混合使用遵循「前先变、后后变」;
  4. 类型转换:小范围转大范围自动转换,大范围转小范围必须强制转换,存在精度丢失风险;
  5. 赋值运算符:扩展赋值运算符自带强制转换,简化代码编写;
  6. 关系运算符:结果为布尔值,注意区分===
  7. 逻辑运算符:优先使用短路&&||,执行效率更高;
  8. 三元运算符:简单条件二选一,精简分支代码;
  9. 运算符优先级:复杂运算建议使用()手动指定顺序。

运算符是 Java 逻辑代码的基础,后续分支、循环、集合等知识点都会大量用到,建议多编写案例练习,熟练掌握各类运算符的规则与易错点。

http://www.jsqmd.com/news/1013783/

相关文章:

  • Privazer源码级避坑指南
  • Ketcher 免费开源分子绘图工具:从入门到精通的完整指南
  • 软件架构指南:从定义到应用与企业架构的全面解析
  • 2026年6月最新版广安正规房屋漏水防水补漏维修口碑名单:创维修缮机构等5家深度测评 - 一修哥咨询
  • GR3-Fourier V10.2主要内容包括:1)无传感器磁链观测器的C语言实现,含电阻/电感参数和滤波系数;2)三相电流克拉克变换的优化算法;3)动态内存池管理机制;4)电网锁相环幅值归一化处理。
  • 5分钟快速上手:基于ESP32和ML307 4G模块的智能语音助手完整指南
  • Dify工作流实战指南:零代码构建智能应用的全能解决方案
  • 如何高效使用notepad--:国产跨平台编辑器的完整实用指南
  • 如何用Python自动化工具在5分钟内从视频中提取PPT内容
  • 20260613 比赛 总结
  • MPC8280 ATM AAL2/IMA协议硬件加速配置与调试实战
  • Qlib量化投资平台终极指南:从零开始构建AI驱动的量化策略
  • 让老旧Mac重获新生:OpenCore内存修补技术深度解析
  • 2026:增城除甲醛公司 5 大排名|基于全民票选与真实口碑|高温高湿气候适配性专项测评 - 专注室内空气检测治理
  • 用游戏化思维学Python循环:从ICode训练场到《我的世界》编程的实战迁移
  • 3种AMD处理器深度调试方案:释放Ryzen平台隐藏性能潜力
  • 2026年6月最新版广元正规房屋漏水防水补漏维修口碑名单:创维修缮机构等5家深度测评 - 一修哥咨询
  • 2026年6月最新版抚顺正规房屋漏水防水补漏维修口碑名单:创维修缮机构等5家深度测评 - 一修哥咨询
  • 如何用trackerslist项目彻底解决BT下载速度慢的问题:完整指南
  • 3个关键步骤彻底改变ARK游戏管理体验
  • 3步搞定:用WinDiskWriter在Mac上制作万能Windows启动盘
  • 看完就会:高效论文写作全流程AI论文写作软件推荐(2026 最新)
  • Cursor自动更新禁用终极指南:彻底解决更新导致的试用限制问题
  • Python六大基础数据类型全维度解析(区分可变/不可变)
  • 2026年6月最新版抚州正规房屋漏水防水补漏维修口碑名单:创维修缮机构等5家深度测评 - 一修哥咨询
  • 2026年热门AI写作辅助平台全攻略(含详细使用步骤)
  • Python的UnitTest接口自动化实战(五)
  • 如何在Kodi中实现115网盘原码播放:完整安装配置指南
  • 5分钟掌握Umi-CUT:终极图片批量去黑边与裁剪压缩神器
  • 终极指南:如何用免费开源工具smcFanControl优化Intel Mac风扇控制与温度管理