二、java运算符

6 阅读3分钟

Java 运算符完整知识点

一、运算符分类(按功能)

  1. 算术运算符
  2. 赋值运算符
  3. 关系(比较)运算符
  4. 逻辑运算符
  5. 位运算符
  6. 条件运算符(三目运算符)
  7. instanceof 运算符
  8. 运算符优先级与结合性

二、算术运算符

用于数学计算。

运算符作用示例结果
+加法 / 字符串连接3+25
-减法5-23
*乘法3*412
/除法10/33(整数相除取整)
%取余(模运算)10%31
++自增a++ / ++aa+1
--自减a-- / --aa-1

重点:自增/自减

  • 前++:先加1,再使用
    int a = 5;
    int b = ++a;  // a=6, b=6
    
  • 后++:先使用,再加1
    int a = 5;
    int b = a++;  // a=6, b=5
    

-- 同理。


三、赋值运算符

用于给变量赋值。

运算符作用等价于
=赋值a=10
+=加后赋值a += 5 → a = a+5
-=减后赋值a -= 3 → a = a-3
*=乘后赋值a = 2 → a = a2
/=除后赋值a /= 2 → a = a/2
%=取余后赋值a %= 2 → a = a%2

特点:自动强制类型转换

short s = 1;
s += 1;  // 合法,等价 s=(short)(s+1)
s = s+1; // 报错,int→short需强转

四、关系(比较)运算符

结果一定是 boolean(true/false)

运算符含义
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

注意:

  • = 是赋值,== 才是比较
  • 浮点数比较容易精度丢失,不建议直接用 ==

五、逻辑运算符

操作 boolean,结果 boolean。

运算符名称规则
&&短路与全真才真,一假即假
||短路或一真即真,全假才假
!逻辑非取反
&非短路与两边都执行
|非短路或两边都执行

重点:短路特性

  • &&:左边为 false,右边不执行
  • ||:左边为 true,右边不执行

示例:

int a = 5;
if (false && (a++ > 0)) {}
System.out.println(a); // 5,右边没执行

六、位运算符

对整数二进制位操作,速度极快。

运算符作用
&按位与
|按位或
^按位异或
~按位取反
<<左移
>>右移(带符号)
>>>无符号右移

常用规律

  • x << 1 ≈ x * 2
  • x >> 1 ≈ x / 2
  • a ^ a = 0a ^ 0 = a(可用于交换变量)

七、条件运算符(三目运算符)

格式:

条件 ? 表达式1 : 表达式2
  • 条件为 true → 执行表达式1
  • 条件为 false → 执行表达式2

示例:

int max = a > b ? a : b;

八、instanceof 运算符

判断对象是否属于某个类/接口类型

obj instanceof ClassName

返回 boolean。


九、运算符优先级(从高到低,必背)

优先级越高越先算。

  1. () 括号
  2. ++ -- 自增自减
  3. ! ~ 非、取反
  4. * / %
  5. + -
  6. << >> >>>
  7. < <= > >= instanceof
  8. == !=
  9. &
  10. ^
  11. |
  12. &&
  13. ||
  14. ? :
  15. 赋值运算符 = +=

口诀记忆

单目算术移位关,逻辑三目赋值完。


十、结合性

  • 大部分从左到右
  • 单目运算符、赋值、三目运算符:从右到左

例如:

a = b = c = 10;
// 等价 c=10; b=c; a=b;

十一、高频面试点总结

  1. ++ 前后区别
  2. &&& 的区别(短路)
  3. === 区别
  4. 位运算快速乘除、交换两数
  5. 运算符优先级判断表达式结果