精通 Java 运算符:类型、语法与实战示例
Java 运算符
本教程将通过示例讲解 Java 中不同类型的运算符、语法及用法。
运算符是对变量和值执行操作的符号。例如,+ 用于加法,* 用于乘法。
Java 运算符可分为 6 类:
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 一元运算符
- 位运算符
1. Java 算术运算符
算术运算符用于对变量和数据执行算术操作。例如:
a + b;
此处 + 运算符将两个变量 a 和 b 相加。Java 中还有其他算术运算符。
| 运算符 | 操作 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模运算 (除法余数) |
示例 1: 算术运算符
class Main {
public static void main(String[] args) {
// 声明变量
int a = 12, b = 5;
// 加法运算符
System.out.println("a + b = " + (a + b));
// 减法运算符
System.out.println("a - b = " + (a - b));
// 乘法运算符
System.out.println("a * b = " + (a * b));
// 除法运算符
System.out.println("a / b = " + (a / b));
// 取模运算符
System.out.println("a % b = " + (a % b));
}
}
输出
a + b = 17 a - b = 7 a * b = 60 a / b = 2 a % b = 2
上例使用 +、-、* 进行加减乘运算。
/ 除法运算符
注意程序中的 a / b。/ 是除法运算符。
若两个整数相除,商也是整数;若任一操作数为浮点数,结果也为浮点数。
在 Java 中:
(9 / 2) 结果为 4
(9.0 / 2) 结果为 4.5
(9 / 2.0) 结果为 4.5
(9.0 / 2.0) 结果为 4.5
% 取模运算符
取模运算符 % 计算余数。当 a = 7 被 b = 4 除时,余数为 3。
注意:% 运算符主要用于整数。
2. Java 赋值运算符
赋值运算符用于给变量赋值。例如:
int age;
age = 5;
此处 = 是赋值运算符,将右侧值赋给左侧变量。即 5 赋给 age。
更多 Java 赋值运算符:
| 运算符 | 示例 | 等价于 |
|---|---|---|
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
示例 2: 赋值运算符
class Main {
public static void main(String[] args) {
// 创建变量
int a = 4;
int var;
// 使用 = 赋值
var = a;
System.out.println("var 使用 =: " + var);
// 使用 += 赋值
var += a;
System.out.println("var 使用 +=: " + var);
// 使用 *= 赋值
var *= a;
System.out.println("var 使用 *=: " + var);
}
}
输出
var 使用 =: 4 var 使用 +=: 8 var 使用 *=: 32
3. Java 关系运算符
关系运算符用于检查两个操作数间的关系。例如:
// 检查 a 是否小于 b
a < b;
此处 < 是关系运算符,检查 a 是否小于 b。返回 true 或 false。
| 运算符 | 描述 | 示例 |
|---|---|---|
== | 等于 | 3 == 5 返回 false |
!= | 不等于 | 3 != 5 返回 true |
> | 大于 | 3 > 5 返回 false |
< | 小于 | 3 < 5 返回 true |
>= | 大于或等于 | 3 >= 5 返回 false |
<= | 小于或等于 | 3 <= 5 返回 true |
示例 3: 关系运算符
class Main {
public static void main(String[] args) {
// 创建变量
int a = 7, b = 11;
// a 和 b 的值
System.out.println("a is " + a + " and b is " + b);
// == 运算符
System.out.println(a == b); // false
// != 运算符
System.out.println(a != b); // true
// > 运算符
System.out.println(a > b); // false
// < 运算符
System.out.println(a < b); // true
// >= 运算符
System.out.println(a >= b); // false
// <= 运算符
System.out.println(a <= b); // true
}
}
注意:关系运算符用于决策和循环。
4. Java 逻辑运算符
逻辑运算符用于检查表达式是 true 还是 false,用于决策制定。
| 运算符 | 示例 | 含义 |
|---|---|---|
&& (逻辑与) | expression1 && expression2 | 仅当 expression1 和 expression2 均为 true 时返回 true |
|| (逻辑或) | expression1 || expression2 | 若 expression1 或 expression2 为 true 则返回 true |
! (逻辑非) | !expression | 若 expression 为 false 返回 true,反之亦然 |
示例 4: 逻辑运算符
class Main {
public static void main(String[] args) {
// && 运算符
System.out.println((5 > 3) && (8 > 5)); // true
System.out.println((5 > 3) && (8 < 5)); // false
// || 运算符
System.out.println((5 < 3) || (8 > 5)); // true
System.out.println((5 > 3) || (8 < 5)); // true
System.out.println((5 < 3) || (8 < 5)); // false
// ! 运算符
System.out.println(!(5 == 3)); // true
System.out.println(!(5 > 3)); // false
}
}
程序解析
(5 > 3) && (8 > 5)返回true,因两者均为true。(5 > 3) && (8 < 5)返回false,因(8 < 5)为false。(5 < 3) || (8 > 5)返回true,因(8 > 5)为true。(5 > 3) || (8 > 5)返回true,因(5 > 3)为true。(5 < 3) && (8 < 5)返回false,因两者均为false。!(5 == 3)返回 true,因5 == 3为false。!(5 > 3)返回 false,因5 > 3为true。
5. Java 一元运算符
一元运算符仅用于单个操作数。例如 ++ 是增加变量值 1 的一元运算符。即 ++5 返回 6。
不同类型的一元运算符:
| 运算符 | 含义 |
|---|---|
+ | 一元加:非必需,因数字本身为正 |
- | 一元减:反转表达式符号 |
++ | 自增运算符:值加 1 |
-- | 自减运算符:值减 1 |
! | 逻辑补运算符:反转布尔值 |
自增和自减运算符
Java 提供自增和自减运算符:++ 和 --。++ 将操作数值加 1,-- 减 1。例如:
int num = 5;
// 将 num 加 1
++num;
此处 num 从初始值 5 增至 6。
示例 5: 自增和自减运算符
class Main {
public static void main(String[] args) {
// 声明变量
int a = 12, b = 12;
int result1, result2;
// 原始值
System.out.println("Value of a: " + a);
// 自增运算符
result1 = ++a;
System.out.println("After increment: " + result1);
System.out.println("Value of b: " + b);
// 自减运算符
result2 = --b;
System.out.println("After decrement: " + result2);
}
}
输出
Value of a: 12 After increment: 13 Value of b: 12 After decrement: 11
上程序使用 ++ 和 -- 作为 前缀 (++a, --b)。也可用作 后缀 (a++, b++)。
前缀与后缀用法略有差别。详见 自增自减运算符。
6. Java 位运算符
Java 位运算符用于对单个位执行操作。例如:
35 的位补运算
35 = 00100011 (二进制)
~ 00100011
________
11011100 = 220 (十进制)
此处 ~ 是位运算符,将每位取反 (0 变 1,1 变 0)。
Java 中的各种位运算符:
| 运算符 | 描述 |
|---|---|
~ | 位补码 |
<< | 左移 |
>> | 右移 |
>>> | 无符号右移 |
& | 位与 |
^ | 位异或 |
这些运算符在 Java 中不常用。详见 Java 位运算和移位运算符。
其他运算符
除了上述运算符,Java 还有其他额外运算符。
Java instanceof 运算符
instanceof 检查对象是否为特定类的实例。例如:
class Main {
public static void main(String[] args) {
String str = "Programiz";
boolean result;
// 检查 str 是否为 String 类的实例
result = str instanceof String;
System.out.println("Is str an object of String? " + result);
}
}
输出
Is str an object of String? true
此处 str 是 String 类实例,故 instanceof 返回 true。详见 Java instanceof。
Java 三元运算符
三元运算符 (条件运算符) 是 if-then-else 语句的简写。例如:
variable = Expression ? expression1 : expression2
工作原理:
- 若
Expression为true,将expression1赋给 variable。 - 若
Expression为false,将expression2赋给 variable。
三元运算符示例:
class Java {
public static void main(String[] args) {
int februaryDays = 29;
String result;
// 三元运算符
result = (februaryDays == 28) ? "Not a leap year" : "Leap year";
System.out.println(result);
}
}
输出
Leap year
上例用三元运算符判断闰年。详见 Java 三元运算符。
了解 Java 运算符后,接下来需知晓运算符求值顺序。详见 Java 运算符优先级。
java
- C#运算符——C#运算符全面指南
- 掌握 C++ 运算符:六大类型全解析与实战示例
- C 语言运算符完全指南:算术、关系、逻辑、位运算等
- 精通Python运算符:全面指南
- Java 注释:类型、用法与最佳实践
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
- 深入理解 Java Vector:用法、特性及与 ArrayList 的对比