
🏠个人主页:黎雁
🎬作者简介:C/C++/JAVA后端开发学习者
❄️个人专栏:C语言、数据结构(C语言)、EasyX、JAVA、游戏、规划、程序人生
✨ 从来绝巘须孤往,万里同尘即玉京

文章目录
- [吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南)](#吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南))
-
- 文章摘要(248字)
- [一、前言 ✨](#一、前言 ✨)
- [二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】](#二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】)
-
- [2.1 基本语法与定义](#2.1 基本语法与定义)
- [2.2 核心特性+避坑要点+完整Java案例](#2.2 核心特性+避坑要点+完整Java案例)
-
- [✔ 特性1:除法运算`/` :整数舍小数,浮点保精度](#✔ 特性1:除法运算
/:整数舍小数,浮点保精度) - [✔ 特性2:取余运算`%` :Java专属核心特性【重中之重】](#✔ 特性2:取余运算
%:Java专属核心特性【重中之重】)
- [✔ 特性1:除法运算`/` :整数舍小数,浮点保精度](#✔ 特性1:除法运算
- [2.3 Java & C语言 算术操作符 核心区别 ✅](#2.3 Java & C语言 算术操作符 核心区别 ✅)
- [三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】](#三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】)
-
- [✅ 移位操作符三大铁律(避坑核心)](#✅ 移位操作符三大铁律(避坑核心))
- [3.1 左移操作符 `<<` :左移舍弃,右侧补0](#3.1 左移操作符
<<:左移舍弃,右侧补0) -
- [✔ 核心规则](#✔ 核心规则)
- [✔ 黄金规律](#✔ 黄金规律)
- [✔ 完整Java代码案例](#✔ 完整Java代码案例)
- [3.2 算术右移操作符 `>>` :右移舍弃,左侧补符号位](#3.2 算术右移操作符
>>:右移舍弃,左侧补符号位) -
- [✔ 核心规则](#✔ 核心规则)
- [✔ 黄金规律](#✔ 黄金规律)
- [✔ 完整Java代码案例](#✔ 完整Java代码案例)
- [3.3 逻辑右移操作符 `>>>` :Java独有,右移舍弃,左侧补0【必考】](#3.3 逻辑右移操作符
>>>:Java独有,右移舍弃,左侧补0【必考】) -
- [✔ 核心规则](#✔ 核心规则)
- [✔ 关键特性](#✔ 关键特性)
- [✔ 完整Java代码案例](#✔ 完整Java代码案例)
- [3.4 Java & C语言 移位操作符 核心区别 ✅](#3.4 Java & C语言 移位操作符 核心区别 ✅)
- [✨ 知识回顾(核心考点,快速记忆,无冗余)](#✨ 知识回顾(核心考点,快速记忆,无冗余))
- [✍️ 写在最后](#✍️ 写在最后)
吃透Java操作符进阶:算术+移位操作符 全解析✨(Java&C区别+完整案例+避坑指南)
文章摘要(248字)
本文为Java操作符系列第二篇,聚焦核心运算类操作符:算术操作符与移位操作符全量知识点。详细讲解算术操作符+、-、*、/、%的语法规则、核心特性与避坑要点,重点突出Java中%支持浮点运算的专属特性;完整拆解移位操作符<<、>>、>>>的运算逻辑,详解Java独有的逻辑右移>>>核心考点。搭配可直接运行的Java代码案例,标注Java与C语言的核心语法差异,补充运算效率技巧与常见错误。零基础友好,吃透本章节可熟练掌握数值计算与二进制位移位运算,夯实Java运算核心能力,规避语法误区。
阅读时长:约10分钟
适用人群及阅读重点
- ✅ Java零基础入门者:重点掌握两类操作符语法规则、代码案例、运算特性,熟记核心用法。
- ✅ 有C语言基础转Java:聚焦「Java&C核心区别」,牢记
%浮点支持、新增>>>两大核心差异。 - ✅ 备考/初学开发者:熟记移位运算规律、算术运算坑点,均为笔试高频基础考点。
- ✅ 进阶学习者:掌握移位运算高效替代乘除的技巧,为算法优化积累基础。
一、前言 ✨
各位CSDN的小伙伴们~上篇我们吃透了Java操作符的核心前置知识:操作符分类与跨语言差异、进制转换、原码反码补码的底层逻辑,这些知识是今天学习的核心基石。
今天我们正式进入Java运算类操作符的实战学习,核心讲解两大高频操作符:算术操作符 & 移位操作符。这两类是Java开发中最基础、最常用的操作符,数值计算、进制运算、算法优化都离不开它们,同时也是新手最容易踩坑的知识点。本文会全覆盖语法规则、特性、案例、避坑点,还有Java与C语言的核心差异,知识点无冗余,吃透即掌握,正式开讲~💻
二、Java算术操作符 ➕➖✖️➗% 【基础核心,必吃透】
2.1 基本语法与定义
算术操作符是实现基础数学运算的核心工具,包含5个核心符号:
+ 加法运算 、- 减法运算 、* 乘法运算 、/ 除法运算 、% 取余(模)运算
✅ 通用规则:支持正数、负数、0的运算,运算逻辑与数学规则一致,操作数支持整数/浮点型。
2.2 核心特性+避坑要点+完整Java案例
✔ 特性1:除法运算/ :整数舍小数,浮点保精度
Java中除法运算分两种场景,无四舍五入,直接舍弃小数 是核心坑点,必须牢记:
▷ 两侧均为整数:结果只保留整数部分,小数部分直接丢弃;
▷ 任意一侧为浮点型:结果为浮点型,保留完整运算精度。
java
public class ArithmeticOper {
public static void main(String[] args) {
System.out.println(10 / 3); // 结果:3 (整数相除,舍弃小数)
System.out.println(10.0 / 3); // 结果:3.3333333333333335 (浮点相除)
}
}
✔ 特性2:取余运算% :Java专属核心特性【重中之重】
这是Java与C语言最核心的差异点 ,笔试必考!
▷ Java:% 同时支持整数+浮点型 运算,无编译报错;取余结果的符号与被除数一致 ,与除数无关。
▷ C语言:% 仅支持整数类型,浮点型使用%直接编译报错。
计算公式:余数 = 被除数 - 商 × 除数
java
public class ArithmeticOper {
public static void main(String[] args) {
System.out.println(10 % 3); // 1 (被除数正,结果正)
System.out.println(-10 % 3); // -1 (被除数负,结果负)
System.out.println(40.7 % 2.0); // Java专属:浮点取余 → 0.7
}
}
2.3 Java & C语言 算术操作符 核心区别 ✅
▶ C语言:% 运算符仅限整数类型使用,浮点型用%编译报错;不同类型运算自动隐式转换,仅编译器警告。
▶ Java:% 运算符兼容整数+浮点型,是语法原生特性;强类型约束,不同类型运算必须手动强制转换,否则编译报错。
三、Java移位操作符 << >> >>> 【Java专属重点⭐笔试高频】
移位操作符是对整数二进制补码 进行位移动的专属操作符,是Java的重点+难点,所有运算规则都基于上篇学的「补码」知识点,基础不牢的小伙伴建议回顾上篇补码内容,先明确3个铁律,必须记牢,无任何例外:
✅ 移位操作符三大铁律(避坑核心)
- 仅对整数类型生效:byte/short/int/long,浮点型(float/double)使用移位操作符直接编译报错;
- 运算对象是数值的二进制补码:不是原码/反码,正数负数均遵循此规则;
- 禁止移动负数位:如
num >> -1,Java编译直接报错,移位位数必须是非负整数。
3.1 左移操作符 << :左移舍弃,右侧补0
✔ 核心规则
将数值的二进制补码向左移动n位,左侧超出的二进制位直接舍弃,右侧空缺的位置统一补0。
✔ 黄金规律
无数值溢出时,左移1位 ≈ 乘以2,左移n位 ≈ 乘以2ⁿ,位运算的执行效率远高于乘法运算,开发中常用此技巧优化代码。
✔ 完整Java代码案例
java
public class ShiftOper {
public static void main(String[] args) {
int a = 10; // 补码:00000000 00000000 00000000 00001010
int b = a << 1; // 左移1位补0 → 00000000 00000000 00000000 00010100
System.out.println(b); // 结果:20
System.out.println(a); // 原变量不变:10
}
}
3.2 算术右移操作符 >> :右移舍弃,左侧补符号位
✔ 核心规则
将数值的二进制补码向右移动n位,右侧超出的二进制位直接舍弃,左侧空缺的位置补原数值的符号位:正数补0,负数补1。
✔ 黄金规律
无数值溢出时,右移1位 ≈ 除以2,右移n位 ≈ 除以2ⁿ,结果自动向下取整,效率高于除法运算。
✔ 完整Java代码案例
java
public class ShiftOper {
public static void main(String[] args) {
int a = 10; // 正数,符号位0 → 右移补0 → 结果5
int b = -10; // 负数,符号位1 → 右移补1 → 结果-5
System.out.println(a >> 1); // 5
System.out.println(b >> 1); // -5
}
}
3.3 逻辑右移操作符 >>> :Java独有,右移舍弃,左侧补0【必考】
这是Java新增的移位操作符,C语言中完全没有,是笔试高频考点,重中之重!
✔ 核心规则
将数值的二进制补码向右移动n位,右侧超出的二进制位直接舍弃,无论原数值是正数还是负数,左侧空缺位统一补0。
✔ 关键特性
逻辑右移后,负数会直接转为正数,因为符号位被强制补0,这是和算术右移>>的核心区别。
✔ 完整Java代码案例
java
public class ShiftOper {
public static void main(String[] args) {
int a = -10; // 补码:11111111 11111111 11111111 11110110
int b = a >>> 1; // 逻辑右移1位,左侧补0 → 正数结果
System.out.println(b); // 结果:2147483643
}
}
3.4 Java & C语言 移位操作符 核心区别 ✅
▶ C语言:仅支持<<左移、>>右移,无>>>逻辑右移;>>的运算规则取决于编译器,部分是算术右移,部分是逻辑右移,无统一标准。
▶ Java:完整支持<</>>/>>>三种移位;>>固定为算术右移,>>>固定为逻辑右移,语法规则统一,无编译器差异,新增>>>=配套赋值操作符。
✨ 知识回顾(核心考点,快速记忆,无冗余)
- 算术操作符:
/整数相除舍小数,%Java支持浮点运算,结果符号与被除数一致; - 移位三铁律:仅整数可用、运算补码、禁止负位数,移位不修改原变量值;
<<左移补0,等价乘2;>>算术右移补符号位,等价除2;>>>Java独有补0,负数变正数;- Java与C核心差异:
%浮点支持、新增>>>,语法更严谨无编译器差异。
✍️ 写在最后
本篇作为Java操作符系列第二篇,我们吃透了算术、移位两大核心操作符,从语法规则到特性技巧,从代码案例到跨语言差异,全覆盖所有必考知识点。这两类操作符是Java运算的基础,算术操作符处理日常数值计算,移位操作符处理二进制位运算,都是开发中高频使用的工具。
所有运算的核心都离不开上篇的补码知识,建议大家结合案例多敲代码,理解规则远比死记硬背高效。下一篇我们将讲解Java的位操作符与赋值操作符,包含位运算经典技巧、赋值运算的语法糖与自动强转特性,干货满满。
感谢各位阅读,觉得内容有用欢迎点赞+收藏+关注✨,你的支持是持续更新的动力,咱们下篇见!