Java 运算符

2025年4月28日 | 阅读14分钟

运算符是任何编程语言的重要组成部分。在 Java 中,运算符是一个用于执行操作的符号。例如:+、-、*、/ 等。这些对于对变量和值执行不同类型操作至关重要。在本节中,我们将讨论Java 编程中使用的不同类型的运算符

Operators in Java

Java 中主要有八种运算符

  1. 一元运算符
  2. 算术运算符
  3. 关系运算符
  4. 三元运算符
  5. 赋值运算符
  6. 位运算符
  7. 逻辑运算符
  8. 移位运算符

Java 一元运算符

Java 一元运算符只需要一个操作数。一元运算符用于执行各种操作,即将值增加/减少一、否定表达式以及反转布尔值。请观察下表。

运算符名称描述
+一元加一元加运算符;表示正值(尽管没有它,数字也是正数)
-一元减一元减运算符可用于将正值变为负值。
!逻辑非运算符非运算符用于转换布尔值。换句话说,它用于反转操作数的逻辑状态。
++递增它用于将操作数的值增加一。这可以通过两种方式完成。一种是后增量(operand++),另一种是前增量(++operand)。
在后增量中,首先使用操作数的值,然后将其值增加一。

 

在前增量中,首先将操作数的值增加一,然后使用增加后的操作数值。

--递减它用于将操作数的值减少一。这可以通过两种方式完成。一种是后减量(operand--),另一种是前减量(--operand)。
在后减量中,首先使用操作数的值,然后将其值减少一。

 

在前增量中,首先将操作数的值减一,然后使用减去后的操作数值。

Java 一元运算符示例:++ 和 --

示例

编译并运行

输出

10
-10

Java 一元运算符示例:前增量和后增量

示例

编译并运行

输出

10
12

Java 一元运算符示例:前减量和后减量

示例

编译并运行

输出

10
8

Java 一元运算符示例:逻辑非运算符和否定

示例

编译并运行

输出

-11
9
false
true

阅读更多:Java 中的一元运算符


Java 算术运算符

Java 算术运算符用于执行加法、减法、乘法、除法和取模运算。它们充当基本的数学运算。

运算符名称描述
+加法将两个数字相加。
-减法从另一个数字中减去一个数字。
*乘法将两个数字相乘。
/除法将一个数字除以另一个数字。
%取模除以两个数字并返回余数。

Java 算术运算符示例

示例

编译并运行

输出

15
5
50
2
0

Java 算术运算符示例:表达式

示例

编译并运行

输出

21

阅读更多:Java 中的算术运算符


Java 移位运算符

Java 移位运算符作用于数据的位。它将数字的位从左向右或从右向左移动。下表显示了 Java 中移位运算符的类型。

运算符运算符名称描述
<<左移运算符(有符号)使用此运算符,所有位都向左移动指定的次数。
>>右移运算符(有符号)使用此运算符,所有位都向右移动指定的次数。
>>>无符号右移运算符它类似于右移运算符(有符号)。但是,空出的最左边位置用 0 填充,而不是符号位

Java 左移运算符

Java 左移运算符 << 用于将值中的所有位向左移动指定的次数。

Java 左移运算符示例

示例

编译并运行

输出

40
80
80
240

Java 右移运算符

Java 右移运算符 >> 用于将左操作数的值向右移动指定的位数。

Java 右移运算符示例

示例

编译并运行

输出

2
5
2

Java 移位运算符示例:>> vs >>>(无符号右移)

示例

编译并运行

输出

5
5
-5
1073741819

阅读更多:Java 中的移位运算符


Java 关系运算符

Java 关系运算符或条件运算符用于检查两个操作数之间的关系,例如小于、小于等于、大于、大于等于、等于和不等于。它也称为相等运算符。这些运算符返回布尔值,即 true 或 false。

运算符名称描述
<Less Than (小于号)如果第一个操作数的值小于第二个操作数的值,则小于运算符返回 true,否则返回 false。
>Greater Than (大于号)如果第一个操作数的值大于第二个操作数的值,则大于运算符返回 true,否则返回 false。
<=小于等于当第一个操作数的值小于或等于第二个操作数的值时,小于等于运算符返回 true,否则返回 false。
>=大于等于当第一个操作数的值大于或等于第二个操作数的值时,大于等于运算符返回 true,否则返回 false。
==等于等于运算符检查给定的操作数是否相等。如果它们相等,则返回 true,否则返回 false。
!=不等于不等于运算符的工作方式与等于运算符完全相反。如果操作数的值相等,则返回 false,否则返回 true。

Java 关系运算符示例

示例

编译并运行

输出

(a < b) : true
(a > b) : false
(a <= b) : true
(a >= b) : false
(a == b) : false
(a != b) : true

阅读更多:Java 中的关系运算符


Java 位运算符

Java 位运算符用于对数字的单个位进行操作,并与任何整数类型一起使用。它们在执行二进制索引树的更新和查询操作时使用。

运算符运算符名称描述
|按位或它是一个二元运算符,对输入值进行逐位 OR 操作。
&按位与它是一个二元运算符,对输入值进行逐位 AND 操作。
^按位异或它是一个二元运算符,对输入值进行逐位 XOR 操作。
~按位补码位补运算符也是一元运算符。它将每个 0 变成 1,将每个 1 变成 0。

Java 位运算符 OR (|) 示例

示例

编译并运行

输出

The value of a | b is: 15

Java 位运算符 AND (&) 示例

示例

编译并运行

输出

The value of a & b is: 1

Java 位运算符 XOR (^) 示例

示例

编译并运行

输出

The value of a ^ b is: 14

Java 位补运算符示例

示例

编译并运行

输出

The value of ~a is: -6

阅读更多:Java 中的位运算符


Java 逻辑运算符

逻辑运算符在各种编程语言中广泛用于执行逻辑非、或和与操作,其功能与数字电子领域中的或门和与门类似。

运算符名称描述
&&条件与运算符逻辑 && 运算符在第一个条件为 false 时不会检查第二个条件。它仅在第一个条件为 true 时才检查第二个条件。
||条件或运算符逻辑 || 运算符在第一个条件为 true 时不会检查第二个条件。它仅在第一个条件为 false 时才检查第二个条件。
!按位补码非运算符用于反转布尔表达式的值。

Java 逻辑与 (&&) 运算符示例

示例

编译并运行

输出

else block is executed.
The value of a is: 10

Java 逻辑或 (||) 运算符示例

示例

编译并运行

输出

true
The value of a is: 10
true
The value of a is: 11

Java 逻辑非或位补 (!) 运算符示例

示例

编译并运行

输出

false
true

阅读更多:Java 中的逻辑运算符


Java 三元运算符

Java 三元运算符用作 if-then-else 语句的一行替换,在 Java 编程中大量使用。它是唯一接受三个操作数的条件运算符。

Operators in Java

Java 三元运算符示例

下面的示例检查两个数字中的最大值。

示例

编译并运行

输出

2

让我们看另一个例子。

下面的示例说明了如何使用三元运算符查找三个数字中的最大值。请注意,它使用了三元运算符的嵌套。

示例

编译并运行

输出

The maximum between the three numbers 10, 15, 13 is: 15

注意:虽然使用三元运算符编写代码所需的代码量比 if-else 语句少,但它并不总是使用三元运算符编写代码的好方法。通常,在复杂的逻辑或条件中,if-else 语句优先于三元运算符。在复杂逻辑中使用三元运算符会使代码难以理解。

阅读更多:Java 中的三元运算符


Java 赋值运算符

Java 赋值运算符是最常见的运算符之一。它用于将右侧的值赋给左侧的操作数。左侧操作数必须是变量,右侧操作数包含值。请注意,两个操作数的数据类型必须相同。否则,编译器将引发错误。赋值运算符的结合性是从右到左,这意味着运算符右侧的值被赋给左侧。

赋值运算符类型

有两种类型的赋值运算符。它们是

  • 简单赋值运算符:仅使用 (=) 的简单赋值运算符。
  • 复合赋值运算符:在与 (=) 运算符一起使用 -,+,/,* 时使用复合赋值运算符。

下表说明了不同赋值运算符的工作原理。

类型运算符描述
单赋值运算符=这是最简单的赋值运算符,它将右侧的值赋给左侧的变量。
复合赋值运算符+=这是一个复合赋值运算符,由 + 和 = 组成。它首先将左侧变量的当前值与右侧的值相加,然后将结果赋给左侧的变量。
*=这是一个复合赋值运算符,由 * 和 = 组成。它首先将左侧变量的当前值与右侧的值相乘,然后将结果赋给左侧的变量。
/=这是一个复合赋值运算符,由 / 和 = 组成。它首先将左侧变量的当前值除以右侧的值,然后将商赋给左侧的变量。
%=这是一个复合赋值运算符,由 % 和 = 组成。它首先将左侧变量的当前值除以右侧的值,然后将余数赋给左侧的变量。

Java 赋值运算符示例

示例

编译并运行

输出

13
9
18
9
0

注意:在 Java 中,复合赋值运算符执行隐式类型转换。下面的程序说明了这一点。

Java 赋值运算符示例:添加 Short

在此示例中,我们使用了复合运算符 +=。类似地,其他复合运算符也可以这样做。

示例

编译并运行

输出

Compile time error

类型转换后

示例

编译并运行

输出

20

阅读更多:Java 中的赋值运算符

Java Operator Precedence

运算符类型优先级
一元expr++ expr--
prefix++expr --expr +expr -expr ~ !
算术* / %
加法+ -
移位<< >> >>>
关系< > <= >= instanceof
相等== !=
按位与&
按位异或^
按位或I
逻辑与&&
逻辑或||
三元? :
赋值= += -= *= /= %= &= ^= |= <<= >>= >>>=

结论

运算符是 Java 编程的基础部分,使开发人员能够执行从简单算术到复杂位操作的各种任务。理解不同类型的运算符及其优先级对于编写高效有效的 Java 代码至关重要。本节提供了全面的概述和实际示例,以帮助您开始使用 Java 中的运算符。


Multiple Choice Questions

1) 关系运算符的输出是_______________。

  1. Double
  2. 字符
  3. Integer
  4. Boolean
 

答案: d) Boolean

解释:关系运算符返回布尔值。

2) 从以下选项中选择一个不属于同一类的。

  1. |
  2. &
  3. -
  4. ^
 

答案: c) -

解释:在给定的选项中,只有 - 是无符号运算符。其余三个是位运算符。

3) 以下打印语句的输出是什么?

System.out.println("The output is: " + (1 || true));

  1. 输出是:1
  2. 输出是:true
  3. Error
  4. 输出是:false
 

答案: c) 错误

解释:在 OR (||) 运算符中,两个操作数都必须是布尔值。在打印语句中,第一个操作数是 int 类型。因此,它会产生错误。

4) Java 中 5 << 2 的输出是什么?

  1. 1
  2. 20
  3. 5
 

答案: b) 20

解释:数字 5 的二进制表示是 00101。当我们使用值 2 应用右移运算符时,我们得到 10100,10100 的十进制表示是 20。

5) 使用纯位运算来判断一个数字是奇数还是偶数,你会选择哪个运算符?

  1. &
  2. |
  3. ^
  4. ~
 

答案: a) &

解释:所有奇数的最高有效位都是 1。所有偶数的最高有效位都是 0。如果我们进行 number & 1 并得到 0,那么该数字是偶数。如果我们得到 1,那么该数字是奇数。


下一个主题Java 关键字