在本教程中,您将通过简单易懂的示例,学习 Java 中用于处理逻辑、算术等计算的各种运算符。
运算符是执行某种计算的特殊符号。运算符作用的对象或值被称为操作数,运算符和操作数的组合被称为表达式。例如,3+6=9 是一个表达式,其中 3、6 和 9 是操作数,而 + 和 = 是运算符。
根据操作的类型,Java 运算符主要分为 6 大类。
Java 中的算术运算符用于对变量和数据执行加、减、乘等计算。下表列出了与算术计算相关的常用运算符,以方便参考。
| 运算符 | 含义 | 描述 | 示例 |
|---|---|---|---|
| + | 加法 | 将两个操作数相加 | 10+2=12 |
| - | 减法 | 从左操作数中减去右操作数 | 10-2=8 |
| * | 乘法 | 将两个操作数相乘 | 10*2=20 |
| / | 除法 | 将左操作数除以右操作数 | 10/2=5 |
| % | 取模 | 除法后的余数 | 10%2=0 |
public class OpEx {
public static void main(String[] args) {
//declaring integer variables
int a =10, b= 2;
// + operator for addition
System.out.println("a + b = " + (a + b));
// - operator for subtraction
System.out.println("a - b = " + (a - b));
// * operator for multiplication
System.out.println("a * b = " + (a * b));
// / operator for division
System.out.println("a / b = " + (a / b));
// % operator for division to obtain remainder
System.out.println("a % b = " + (a % b));
}
}
输出
a + b = 12 a - b = 8 a * b = 20 a / b = 5 a % b = 0
关系运算符比较左侧(LHS)和右侧(RHS)提供的数据,以给出二进制输出,即 True 或 False。以下是使用两个操作数 6 和 9 演示的六种运算符。
| 运算符 | 含义 | 描述 | 示例 |
|---|---|---|---|
| == | 等于 | 如果两个操作数相等,则返回 True | 6==9 返回 False |
| != | 不等于 | 如果两个操作数不相等,则返回 True | 6!=9 返回 True |
| > | 大于 | 如果左操作数大于右操作数,则返回 True | 6>9 返回 False |
| < | 小于 | 如果左操作数小于右操作数,则返回 True | 6<9 返回 True |
| >= | 大于或等于 | 如果左操作数大于或等于右操作数,则返回 True | 6>=9 返回 False |
| <= | 小于或等于 | 如果左操作数小于或等于右操作数,则返回 True | 6<=9 返回 True |
public class OpEx {
public static void main(String[] args) {
// declaring variables
int a = 6, b = 9;
// value of a and b
System.out.println("a = " + a + " and b = " + b);
// == operator
System.out.println(a == b); // 6 == 9 returns false
// != operator
System.out.println(a != b); // 6 != 9 returns true
// > operator
System.out.println(a > b); // 6 > 9 returns false
// < operator
System.out.println(a < b); // 6 < 9 returns true
// >= operator
System.out.println(a >= b); // 6 >= 9 returns false
// <= operator
System.out.println(a <= b); // 6 <= 9 returns true
}
}
逻辑运算符执行二进制操作,以在机器级别处理数据(如与、或、或非、与非等逻辑门)。以下是 Java 中三种基本逻辑运算符的描述,它们在决策制定中被广泛使用。
| 运算符 | 含义 | 描述 | 示例 |
|---|---|---|---|
| && | 逻辑与/合取 | 当且仅当两个语句都为真时,才返回 True | (2<3) &&(3==3) 返回 True |
| || | 逻辑或/析取 | 如果任何一个语句为真,则返回 True | (2>3) ||(3==3) 返回 True |
| ! | 逻辑非/否定 | 如果操作数是取反的,则返回 true | !(3==3) 返回 False |
逻辑运算符的真值表如下所示

研究下面的示例以理解逻辑运算符的原理。
public class OpEx {
public static void main(String[] args) {
// && operator
System.out.println((2 > 3) && (3 == 3)); // false
// || operator
System.out.println((2 > 3) || (3 == 3)); // true
// ! operator
System.out.println(!(3 == 3)); // false
}
}
一元运算符是只作用于一个操作数的运算符。在上一节中,您已经看到了取反运算符(!),它只作用于一个操作数。同样,以下是 Java 中使用的不同类型的一元运算符。
| 运算符 | 含义 | 描述 | 示例 |
|---|---|---|---|
|
+ |
一元正号 |
表示一个正数 |
+3 |
|
- |
一元负号 |
对表达式取反 |
-3 |
|
++ |
递增运算符 |
将值增加 1 |
++4 = 4+1 |
|
-- |
递减运算符 |
将值减少 1 |
--4 = 4-1 |
|
! |
逻辑补码运算符 |
反转布尔值 |
!T = F |
Example: Unary Operator
public class OpEx {
public static void main(String[] args) {
int status = +1;
System.out.println(status); // status is now 1
status--;
System.out.println(status); // After decrement status is now 0
status++;
System.out.println(status); // after increment status is now 1
status = -status;
System.out.println(status); // result is now -1
boolean flag = false;
System.out.println(flag); // false
System.out.println(!flag); // true
}
}
这些是最基本和基础的运算符类型。位运算符,顾名思义,操作的是位级数据。具体来说,位运算符在整数数据的位级别上执行操作。
位运算符有 7 种:-
第一个运算符“&”(按位与)是与类型,如果某个位同时存在于两个操作数中,则将该位复制到结果中。更具体地说,位的存在用二进制 1 表示,其对应方用二进制 0 表示。这是一个显示按位与运算符用法的真值表,它与逻辑运算符非常相似。

例如,3 的二进制表示是 0000 0011,7 的二进制表示是 0000 0111。让我们看看 3 & 7 的结果会是什么

现在让我们看看如何在 java 中使用按位与运算符
public class BAndEx {
public static void main(String[] args) {
int x = 3, y = 7;
System.out.println("x & y = " + (x & y)); // prints 3
}
}
按位或运算符,符号为“|”,其功能类似于逻辑或运算符。如果一个位(1)存在于任一操作数或两个操作数中,它就会复制该位。真值表演示了按位或运算符的工作方式。

让我们尝试理解按位或运算符如何作用于两个二进制数 3 和 7。

下面的 Java 程序展示了按位或运算符的操作。
public class BOREx {
public static void main(String[] args) {
int x = 3, y = 7;
System.out.println("x | y = " + (x | y)); // prints 7
}
}