Java 运算符
Java 运算符是用于执行各种计算和操作的符号,它们在程序中起着至关重要的作用。
✅ Java 运算符主要分为以下几类:
- 算术运算符 - 用于基本的数学运算
- 赋值运算符 - 用于给变量赋值
- 关系运算符 - 用于比较两个值
- 逻辑运算符 - 用于布尔逻辑运算
- 位运算符 - 用于操作二进制位
- 条件运算符(三元运算符) - 用于条件语句判断
- instanceof 运算符 - 用于检查对象是否是特定类的实例
Java 算术运算符
算术运算符是 Java 中最基础的运算符之一,用于执行基本的数学运算。
它们可以对变量或常量进行加、减、乘、除、取模等操作,但在运算时需要注意数据类型转换和运算精度问题。
运算符类型 | 运算符 | 名称 | 描述(含示例) |
---|---|---|---|
二元运算符 | + | 加法 | 相加两个操作数 示例:5 + 3 = 8(字符串时执行连接:"A" + "B" → "AB") |
- | 减法 | 相减两个操作数 示例:5 - 3 = 2 |
|
* | 乘法 | 相乘两个操作数 示例:5 * 3 = 15 |
|
/ | 除法 | 相除两个操作数 示例:5 / 2 = 2(整数除法舍去小数),5.0 / 2 = 2.5(浮点数保留小数) |
|
% | 取模 | 返回除法运算的余数 示例:5 % 2 = 1(符号与被除数相同:-5 % 2 = -1) |
|
一元运算符 | + | 一元加 | 表示正值(通常省略) 示例:+5 表示正5 |
- | 一元减 | 表示负值或改变符号 示例:-5 表示负5,-(-3) = 3 |
|
++ | 递增 | 将值增加 1 示例:a=5; a++ → 6(后置),++a → 6(前置) |
|
-- | 递减 | 将值减少 1 示例:a=5; a-- → 4(后置),--a → 4(前置) |
使用实例
✅ 下面是简单的 Java 算数运算符 使用实例:
public class Test {
public static void main(String[] args) {
int a = 10, b = 20, c = 25, d = 25;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("b / a = " + (b / a));
System.out.println("b % a = " + (b % a));
System.out.println("c % a = " + (c % a));
System.out.println("a++ = " + (a++));
System.out.println("a-- = " + (a--));
// 查看 d++ 与 ++d 的不同
System.out.println("d++ = " + (d++));
System.out.println("++d = " + (++d));
}
}
💻 下面是实例编译运行后,输出的结果:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
a-- = 11
d++ = 25
++d = 27
Java 赋值运算符
算术运算符是 Java 中最基础的运算符之一,用于给变量赋值。
它能够实现基本的变量赋值,还能结合算术运算进行复合赋值操作,但在使用时需要注意数据类型兼容性和隐式类型转换的问题。
赋值符类型 | 运算符 | 名称 | 描述(含示例) |
---|---|---|---|
基本赋值 | = | 简单赋值 | 将右侧的值赋给左侧变量 示例: int a = 10; |
算术复合赋值 | += | 加后赋值 | 先相加再赋值 示例: a += 5; // 等价于 a = a + 5 |
-= | 减后赋值 | 先相减再赋值 示例: b -= 3; // 等价于 b = b - 3 |
|
*= | 乘后赋值 | 先相乘再赋值 示例: c *= 2; // 等价于 c = c * 2 |
|
/= | 除后赋值 | 先相除再赋值 示例: d /= 4; // 等价于 d = d / 4 |
|
%= | 取模后赋值 | 先取模再赋值 示例: e %= 3; // 等价于 e = e % 3 |
|
位运算复合赋值 | &= | 按位与后赋值 | 先按位与再赋值 示例: f &= 0x0F; // 等价于 f = f & 0x0F |
|= | 按位或后赋值 | 先按位或再赋值 示例: g |= 0x01; // 等价于 g = g | 0x01 |
|
^= | 按位异或后赋值 | 先按位异或再赋值 示例: h ^= mask; // 等价于 h = h ^ mask |
|
<<= | 左移后赋值 | 先左移再赋值 示例: i <<= 2; // 等价于 i = i << 2 |
|
>>= | 右移后赋值 | 先右移再赋值 示例: j >>= 1; // 等价于 j = j >> 1 |
|
>>>= | 无符号右移后赋值 | 先无符号右移再赋值 示例: k >>>= 3; // 等价于 k = k >>> 3 |
使用实例
✅ 下面是简单的 Java 赋值运算符 使用实例:
public class Test {
public static void main(String[] args) {
int a = 10, b = 20, c = 25, d = 25;
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("b / a = " + (b / a));
System.out.println("b % a = " + (b % a));
System.out.println("c % a = " + (c % a));
System.out.println("a++ = " + (a++));
System.out.println("a-- = " + (a--));
// 查看 d++ 与 ++d 的不同
System.out.println("d++ = " + (d++));
System.out.println("++d = " + (++d));
}
}
💻 下面是实例编译运行后,输出的结果:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
a-- = 11
d++ = 25
++d = 27
Java 关系运算符
关系运算符用于比较两个值之间的关系,并返回一个布尔值(true
或false
)。
常用于条件语句和循环控制结构中,是 Java 编程中的基础组成部分。
运算符 | 名称 | 描述(含示例) |
---|---|---|
== | 等于 | 比较两个值是否相等,如:5 == 5 返回 true |
!= | 不等于 | 比较两个值是否不相等,如:5 != 3 返回 true |
> | 大于 | 比较左侧值是否大于右侧值,如:6 > 5 返回 true |
< | 小于 | 比较左侧值是否小于右侧值,如:4 < 5 返回 true |
>= | 大于等于 | 比较左侧值是否大于或等于右侧值,如:5 >= 5 返回 true |
<= | 小于等于 | 比较左侧值是否小于或等于右侧值,如:5 <= 5 返回 true |
使用实例
✅ 下面通过关系运算符使用实例,深入了解关系运算符用法:
public class RelationOperatorsDemo {
public static void main(String[] args) {
int a = 10, b = 5;
System.out.println(a + " == " + b + " : " + (a == b)); // false
System.out.println(a + " != " + b + " : " + (a != b)); // true
System.out.println(a + " > " + b + " : " + (a > b)); // true
System.out.println(a + " < " + b + " : " + (a < b)); // false
System.out.println(a + " >= " + b + " : " + (a >= b)); // true
System.out.println(a + " <= " + b + " : " + (a <= b)); // false
}
}
💻 下面是实例编译运行后,输出的结果:
10 == 5 : false
10 != 5 : true
10 > 5 : true
10 < 5 : false
10 >= 5 : true
10 <= 5 : false
Java 逻辑运算符
逻辑运算符是用于对布尔值(true
/false
)进行逻辑运算的运算符。
它用于组合或修改布尔表达式,从而控制程序的流程(如if
、while
等条件判断)。
运算符 | 名称 | 描述(含示例) |
---|---|---|
&& | 逻辑与 | 当且仅当两个操作数都为 true 时返回 true,如:true && false 返回 false |
|| | 逻辑或 | 当任一操作数为 true 时返回 true,如:true || false 返回 true |
! | 逻辑非 | 对操作数取反,如:!true 返回 false |
使用实例
✅ 下面通过逻辑运算符使用实例,深入了解逻辑运算符用法:
public class SimpleLogicalDemo {
public static void main(String[] args) {
// 定义两个布尔变量
boolean a = true;
boolean b = false;
// 基本逻辑运算演示
System.out.println("a && b: " + (a && b)); // 与运算
System.out.println("a || b: " + (a || b)); // 或运算
System.out.println("!a: " + (!a)); // 非运算
// 短路特性演示
System.out.println("\n短路特性演示:");
int x = 5;
if(a || x++ > 0) {} // a为true,不会执行x++
System.out.println("x=" + x); // 输出5
// 异或运算演示
System.out.println("\n异或运算演示:");
System.out.println("true ^ false: " + (true ^ false)); // true
System.out.println("true ^ true: " + (true ^ true)); // false
}
}
💻 下面是实例编译运行后,输出的结果:
a && b: false
a || b: true
!a: false
短路特性演示:
x=5
异或运算演示:
true ^ false: true
true ^ true: false
Java 位运算符
位运算符是直接对二进制位进行操作的运算符。
它们直接在数字的底层二进制表示上进行运算,而不是像算术运算符那样对数值本身进行操作。
运算符 | 名称 | 描述(含示例) |
---|---|---|
& | 按位与 | 对两个数的二进制位进行与运算,如:5 & 3 返回 1 |
| | 按位或 | 对两个数的二进制位进行或运算,如:5 | 3 返回 7 |
^ | 按位异或 | 对两个数的二进制位进行异或运算,如:5 ^ 3 返回 6 |
~ | 按位取反 | 对一个数的二进制位进行取反,如:~5 返回 -6 |
<< | 左移 | 将二进制位向左移动指定位数,如:5 << 1 返回 10 |
>> | 右移 | 将二进制位向右移动指定位数(保留符号位),如:5 >> 1 返回 2 |
>>> | 无符号右移 | 将二进制位向右移动指定位数(不保留符号位),如:-5 >>> 1 返回 2147483645 |
使用实例
✅ 下面通过位运算符使用实例,深入了解位运算符用法:
public class SimpleBitwiseDemo {
public static void main(String[] args) {
// 基本位运算演示
System.out.println("5 & 3 = " + (5 & 3)); // 0101 & 0011 = 0001 (1)
System.out.println("5 | 3 = " + (5 | 3)); // 0101 | 0011 = 0111 (7)
System.out.println("5 ^ 3 = " + (5 ^ 3)); // 0101 ^ 0011 = 0110 (6)
System.out.println("~5 = " + (~5)); // ~0101 = 1010 (-6)
// 移位运算演示
System.out.println("5 << 1 = " + (5 << 1)); // 0101 << 1 = 1010 (10)
System.out.println("7 >> 1 = " + (7 >> 1)); // 0111 >> 1 = 0011 (3)
System.out.println("-8 >>> 1 = " + (-8 >>> 1)); // 无符号右移
// 实用技巧演示
System.out.println("10是" + ((10 & 1) == 0 ? "偶数" : "奇数")); // 判断奇偶
}
}
💻 下面是实例编译运行后,输出的结果:
5 & 3 = 1
5 | 3 = 7
5 ^ 3 = 6
~5 = -6
5 << 1 = 10
7 >> 1 = 3
-8 >>> 1 = 2147483644
10是偶数
Java 条件运算符(三元运算符)
条件运算符 (?:
) 是唯一的三元运算符(需要三个操作数)它提供了一种简洁的条件判断方式。
条件运算符使用语法:condition ? expression1 : expression2
。
使用实例
✅ 下面通过条件运算符 (?:
) 使用实例,深入了解条件运算符用法:
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
System.out.println("最大值为: " + max); // 输出: 最大值为: 20
}
}
💻 下面是实例编译运行后,输出的结果:
最大值为: 20
Java instanceof 运算符
instanceof
是一个二元运算符,用于检查一个对象是否是指定类型(类、子类或接口)的实例。
instanceof
运算符使用语法:object instanceof Type
。
- 如果
object 是 Type 类型或其子类型的实例,返回 true,否则返回 false - 如果
object 为null ,返回 false
使用实例
✅ 下面通过instanceof
使用实例,深入了解instanceof
用法:
class Animal {}
class Dog extends Animal {}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
System.out.println(animal instanceof Animal); // true
System.out.println(animal instanceof Dog); // true
System.out.println(animal instanceof Object); // true
String str = "Hello";
System.out.println(str instanceof String); // true
System.out.println(str instanceof Object); // true
Animal a = null;
System.out.println(a instanceof Animal); // false (因为a是null)
}
}
💻 下面是实例编译运行后,输出的结果:
true
true
true
true
true
false
Java 运算符优先级
Java 运算符的优先级决定了表达式中运算符的执行顺序。
✅ 以下是 Java 运算符的完整优先级表,从最高优先级到最低优先级:
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | () [] . :: |
括号、数组下标、成员访问、方法引用 | 从左到右 |
2 | ++ -- + - ~ ! (type) |
后置/前置递增递减、正负号、按位取反、逻辑非、类型转换 | 从右到左 |
3 | new |
对象创建 | 从右到左 |
4 | * / % |
乘法、除法、取模 | 从左到右 |
5 | + - |
加法、减法 | 从左到右 |
6 | << >> >>> |
位左移、右移、无符号右移 | 从左到右 |
7 | < <= > >= instanceof |
关系运算符、类型比较 | 从左到右 |
8 | == != |
相等性比较 | 从左到右 |
9 | & |
按位与 | 从左到右 |
10 | ^ |
按位异或 | 从左到右 |
11 | | |
按位或 | 从左到右 |
12 | && |
逻辑与 | 从左到右 |
13 | || |
逻辑或 | 从左到右 |
14 | ?: |
三元条件运算符 | 从右到左 |
15 | = += -= *= /= %= &= |= ^= <<= >>= >>>= |
赋值运算符 | 从右到左 |
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈