跳到主要内容
Java 运算符基础与使用指南 | 极客日志
Java java
Java 运算符基础与使用指南 Java 中的各类运算符,包括算术、关系、逻辑、位运算、移位及条件运算符。内容涵盖语法规范、操作示例、优先级规则及特殊场景处理(如整数除法、短路求值)。旨在帮助开发者掌握基础运算逻辑,编写高效简洁的代码。
黑客帝国 发布于 2026/3/30 更新于 2026/5/26 50 浏览Java 运算符基础与使用指南
Java 提供了丰富的运算符,涵盖了从简单的算术运算到复杂的位运算、逻辑运算等多个方面。掌握这些运算符是每位 Java 程序员的必修课。
1. 算术运算符
1.1 基本四则运算符:加减乘除(+ - * / %)
int a = 20 ;
int b = 10 ;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
注意:
都是二元运算符,使用时必须要有左右两个操作数
int 结果是整数类型,并且会向下取整。
1.2 除法与取余
int a = 3 ;
int b = 2 ;
System.out.println(a / b);
double d = a * 1.0 / b;
System.out.println(d);
int a = 1 ;
int b = 0 ;
System.out.println(a / b);
不仅可以对整数取模,也可以对 double 类型取模,其实没啥意义:
%
System.out.println(11.5 % 2.0 );
1.3 增量运算符(++ --) int a = 1 ;
a += 2 ;
System.out.println(a);
a = 1 ;
a -= 1 ;
System.out.println(a);
a += 3 ;
System.out.println(a);
a /= 3 ;
System.out.println(a);
注意: 只有变量才能使用增量运算符,常量不能使用。
1.4 自增/自减运算符 int a = 1 ;
System.out.println(++a);
System.out.println(a++);
如果是自增(++)或自减(--),操作的是变量的值,会先增减再返回或先返回再增减,具体看前置还是后置。
2. 关系运算符
2.1 关系运算符 关系运算符主要有六个:==、!=、>、<、>=、<=,其计算结果是 true 或 false。
int a = 10 ;
int b = 20 ;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
关系运算符的结果通常用于控制判断,判断条件是否成立。
如果使用 == 比较对象时,需要确保对象的内容相等,而不是地址相等。
3. 逻辑运算符(重点)
3.1 逻辑与 && 语法规则:表达式 1 && 表达式 2,左右表达式必须是 boolean 类型的结果。
相当于现实生活中的例子,比如:如果是学生,并且带有学生证才可以享受半票。
两个表达式都真,结果才是真,只要有一个是假,结果就是假。
int a = 1 ;
int b = 2 ;
System.out.println(a == 1 && b == 2 );
System.out.println(a == 1 && b > 100 );
System.out.println(a > 100 && b == 2 );
System.out.println(a > 100 && b > 100 );
3.2 逻辑或 || 语法规则:表达式 1 || 表达式 2,左右表达式必须是 boolean 类型的结果。
相当于现实生活中的例子,比如:买房子交钱,全款或者 按揭都可以,如果全款或者按揭,房子就是你的,否则站一边去。
int a = 1 ;
int b = 2 ;
System.out.println(a == 1 || b == 2 );
System.out.println(a == 1 || b > 100 );
System.out.println(a > 100 || b == 2 );
System.out.println(a > 100 || b > 100 );
3.3 逻辑非 ! int a = 1 ;
System.out.println(!(a == 1 ));
System.out.println(!(a == 1 ));
3.4 短路求值 System.out.println(10 > 20 && 10 / 0 == 0 );
System.out.println(10 > 20 || 10 / 0 == 0 );
对于 &&,如果左边表达式为 false,则右边表达式无需执行。
对于 ||,如果左边表达式为 true,则右边表达式无需执行。
4. 位运算符 Java 中数据操作的最小单位是字节,而数据操作的最小单位是比特位。字节是最小的存储单位,每个字节是由 8 个二进制位组成的,多个字节组合在一起可以表示不同的数据。
位运算符主要有:&、|、^。除这三种运算符外,其余都是二元运算符。
4.1 按位与 & 如果两个二进制位都为 1,则结果为 1,否则结果为 0。
int a = 10 ;
int b = 20 ;
System.out.println(a & b);
进行按位运算,需要先把 10 和 20 转成二进制,分别为 1010 和 10100。
10 的二进制 20 的二进制 0 的二进制 00001010 00010100 00000000
4.2 按位或 | 如果两个二进制位有一个为 1,则结果为 1,否则结果为 0。
int a = 10 ;
int b = 20 ;
System.out.println(a | b);
注意:当 & 和 | 的操作数为整数 (int, short, long, byte) 的时候,表示按位运算,当操作数为 boolean 的时候,表示逻辑运算。
4.3 按位取反 ~ 如果该位为 1,则该位置为 0,如果该位为 0,则该位置为 1。
int a = 0xF ;
System.out.printf("%x\n" , ~a);
4.4 按位异或 ^ 如果两个二进制位相同,则结果为 0,相异则结果为 1。
int a = 0x1 ;
int b = 0x1 ;
System.out.printf("%x\n" , a ^ b);
5. 移位运算符(了解) 移位运算符有三个:<<、>>、>>>,都是二元运算符,且是按照二进制位来进行移位运算的。
5.1 左移 << : 最左侧位移出,最右侧补 0 int a = 0x10 ;
System.out.printf("%x\n" , a << 1 );
注意: 向左移位,剩余的是符号位,所以正数左移可能会变成负数。
5.2 右移 >> : 最右侧位移出,左侧补符号位 int a = 0x10 ;
System.out.printf("%x\n" , a >> 1 );
int b = 0xffff0000 ;
System.out.printf("%x\n" , b >> 1 );
5.3 无符号右移 >>> : 最右侧位移出,左侧补 0 int a = 0xFFFFFFF ;
System.out.printf("%x\n" , a >>> 1 );
左移 1 位,相当于原数 * 2 的 N 次方。
右移 N 位,相当于原数 / 2 的 N 次方。
由于计算机的补码表示,符号位移时,计算方法不完全相同,某些代码修正后的移位运算在使用时需要注意。
移动负数位或者移位位数过大都没有意义。
6. 条件运算符
6.1 什么是条件运算符? 条件运算符是 Java 中的三目运算符,它用于简化条件判断。其基本语法为:
如果条件表达式为 true,则返回表达式 1 的值;否则,返回表达式 2 的值。
int a = 10 ;
int b = 20 ;
int max = (a > b) ? a : b;
System.out.println(max);
表达式 2 和表达式 3 的结果要是同类型的,除非能发生类型隐式类型转换
表达式不能单独存在,其产生的结果必须要被使用
7. 运算符的优先级 在一条表达式中,各个运算符可以混合使用进行运算,但是运算符的优先级不同,比如:* 和 / 的优先级要高于 + 和 -,有些运算符下低不注意,可能就会造成很大的麻烦。
int a = 10 ;
int b = 20 ;
int c = a + (b - a) >> 1 ;
System.out.println(c);
上述表达式中,由于 + 的优先级高于 >>,因此先和 b-a 的结果做加法,整体为 20,最后再进行右移,因此结果为 10。
int a = 10 ;
int b = 20 ;
int c = a + ((b - a) >> 1 );
System.out.println(c);
注意: 运算符之间是有优先级的。具体的规则我们不必记,在可能存在歧义的代码中加上括号即可。
8. 总结 本文详细介绍了 Java 中的各种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、条件运算符以及运算符的优先级。掌握这些运算符能够帮助你更高效地进行编程并优化程序的运行效率。
相关免费在线工具 Keycode 信息 查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
Escape 与 Native 编解码 JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
JavaScript / HTML 格式化 使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
JavaScript 压缩与混淆 Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online