Java 运算符详解

在 Java 中,运算符用于对变量和值执行操作。Java 提供了丰富的运算符,可分为以下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。以下是 Java 运算符的详细介绍:

一、算术运算符

用于基本数学运算,支持整数、浮点数。

运算符描述示例
+ 加法 5 + 3 → 8
- 减法 5 - 3 → 2
* 乘法 5 * 3 → 15
/ 除法 5 / 3 → 1(整数相除)
5.0 / 3.0 → 1.666...(浮点数)
% 取模(余数) 5 % 3 → 2
++ 自增 int a = 5; a++; → a变为6
-- 自减 int a = 5; a--; → a变为4

自增 / 自减的前置与后置区别
 
int a = 5;
int b = a++;  // 先赋值后自增,b=5,a=6
int c = ++a;  // 先自增后赋值,a=7,c=7
 

二、关系运算符

返回布尔值(truefalse),用于比较两个值。

运算符描述示例
== 等于 5 == 3 → false
!= 不等于 5 != 3 → true
> 大于 5 > 3 → true
< 小于 5 < 3 → false
>= 大于等于 5 >= 3 → true
<= 小于等于 5 <= 3 → false

示例

int x = 5;
int y = 3;
System.out.println(x == y);  // 输出: false
System.out.println(x != y);  // 输出: true
 

三、逻辑运算符

用于布尔值的逻辑运算。

运算符描述示例    
&& 逻辑与 (5 > 3) && (2 < 4) → true        
`   ` 逻辑或 `(5 < 3)   (2 < 4)true`
! 逻辑非 !(5 > 3) → false        

短路特性

  • &&:若左侧为false,右侧不再执行。
  • ||:若左侧为true,右侧不再执行。

示例

int a = 5;
int b = 3;
System.out.println(a > b && b++ > 2);  // b++不会执行,b仍为3
 

四、位运算符

对整数的二进制位进行操作。

运算符描述示例(a=60b=13
& 按位与 a & b → 12(二进制:0000 1100
| 按位或 a | b → 61(二进制:0011 1101
^ 按位异或 a ^ b → 49(二进制:0011 0001
~ 按位取反 ~a → -61(二进制补码)
<< 左移 a << 2 → 240(二进制:1111 0000
>> 右移 a >> 2 → 15(二进制:0000 1111
>>> 无符号右移 a >>> 2 → 15(正数与>>相同)

示例
 
int a = 60;  // 二进制: 0011 1100
int b = 13;  // 二进制: 0000 1101
System.out.println(a & b);   // 输出: 12
System.out.println(a << 2);  // 输出: 240
 

五、赋值运算符

用于赋值操作,支持复合赋值。

运算符示例等价于
= a = 5 a = 5
+= a += 3 a = a + 3
-= a -= 3 a = a - 3
*= a *= 3 a = a * 3
/= a /= 3 a = a / 3
%= a %= 3 a = a % 3
<<= a <<= 2 a = a << 2
>>= a >>= 2 a = a >> 2

示例

int a = 5;
a += 3;    // 等价于 a = a + 3
System.out.println(a);  // 输出: 8
 

六、三元运算符

简化if-else条件判断。

语法

条件表达式 ? 值1 : 值2
 
  • 若条件为true,返回值 1;否则返回值 2。

示例

int a = 5;
int b = 3;
int max = (a > b) ? a : b;  // max = 5
 

七、instanceof 运算符

用于判断对象是否是某个类的实例。

语法
 
对象 instanceof 类
 

示例

String str = "Hello";
boolean isString = str instanceof String;  // true
 

八、运算符优先级

优先级高的运算符先计算,可使用括号()改变优先级。

从高到低排序

  1. 后缀()[].
  2. 一元++--+-~!
  3. 乘除取模*/%
  4. 加减+-
  5. 位移<<>>>>>
  6. 关系<><=>=instanceof
  7. 相等==!=
  8. 按位与&
  9. 按位异或^
  10. 按位或|
  11. 逻辑与&&
  12. 逻辑或||
  13. 三元? :
  14. 赋值=+=-=*=/=%=<<=>>=>>>=

示例

int result = 5 + 3 * 2;  // 输出: 11(先乘后加)
int result2 = (5 + 3) * 2;  // 输出: 16(括号优先)

九、总结

  • 算术运算符:处理基本数学运算。
  • 关系运算符:比较值并返回布尔结果。
  • 逻辑运算符:组合布尔条件,支持短路特性。
  • 位运算符:直接操作二进制位。
  • 赋值运算符:赋值和复合赋值操作。
  • 三元运算符:简化条件判断。
  • instanceof:检查对象类型。
  • 优先级:决定运算顺序,括号可改变优先级。

合理使用运算符能让 Java 代码更简洁、高效。特别注意自增 / 自减的前置后置区别,以及逻辑运算符的短路特性。

posted on 2025-06-18 09:00  coding博客  阅读(33)  评论(0)    收藏  举报