Java 操作符是用于操作变量和值的特殊符号,主要分为以下几类:
1. 算术运算符
用于执行基本的数学运算:
+
:加法(也可用于字符串拼接)-
:减法*
:乘法/
:除法(整数相除取整数部分)%
:取余(模运算)++
:自增(前缀先增后用,后缀先用后增)--
:自减(规则同自增)
示例:
int a = 10, b = 3;
System.out.println(a + b); // 13
System.out.println(a % b); // 1
System.out.println(a++); // 10(先输出后自增)
2. 赋值运算符
用于给变量赋值:
=
:基本赋值+=
:相加后赋值(a += b
等价于a = a + b
)-=
:相减后赋值*=
:相乘后赋值/=
:相除后赋值%=
:取余后赋值
示例:
int x = 5;
x += 3; // 等价于 x = x + 3,结果为8
3. 比较运算符
用于比较两个值,返回布尔值(true
/false
):
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
示例:
int m = 5, n = 10;
System.out.println(m == n); // false
System.out.println(m < n); // true
4. 逻辑运算符
用于连接布尔表达式,返回布尔值:
&&
:逻辑与(短路与,两边都为true
才返回true
,左边为false
则不执行右边)||
:逻辑或(短路或,两边有一个为true
就返回true
,左边为true
则不执行右边)!
:逻辑非(取反,!true
为false
)
示例:
boolean p = true, q = false;
System.out.println(p && q); // false
System.out.println(p || q); // true
System.out.println(!p); // false
5. 位运算符
对整数的二进制位进行操作:
&
:按位与(对应位都为 1 则为 1)|
:按位或(对应位有一个为 1 则为 1)^
:按位异或(对应位不同则为 1)~
:按位非(取反,0 变 1,1 变 0)<<
:左移(将二进制位向左移动指定位数,右边补 0)>>
:右移(将二进制位向右移动指定位数,正数左补 0,负数左补 1)>>>
:无符号右移(无论正负,左补 0)
示例:
int c = 6; // 二进制 0110
int d = 3; // 二进制 0011
System.out.println(c & d); // 2(二进制 0010)
System.out.println(c << 1); // 12(二进制 1100)
6. 三元运算符(条件运算符)
格式:条件表达式 ? 表达式1 : 表达式2
- 若条件为
true
,返回表达式 1 的值;否则返回表达式 2 的值。
示例:
int score = 85;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result); // 及格
7. instanceof 运算符
用于判断对象是否为某个类(或接口)的实例,返回布尔值。
示例:
String str = "Hello";
System.out.println(str instanceof String); // true
这些运算符在 Java 中按优先级从高到低执行,可通过括号()
改变执行顺序
8. 运算符执行流程
a && b || c
在 Java 里,表达式a && b || c的执行流程是由运算符优先级和短路规则共同决定的。下面为你详细分析:
优先级规则
- &&(逻辑与)的优先级要比||(逻辑或)高。
- 所以,这个表达式会先计算a && b,然后再用计算结果和c进行||运算。
执行步骤
- 计算a && b:
- 先对a进行求值。
- 若a的值为false,由于&&的短路特性,不会再对b求值,整个a && b的结果直接为false。
- 若a的值为true,则继续对b求值:
- 当b为true时,a && b的结果为true。
- 当b为false时,a && b的结果为false。
- 计算(a && b) || c:
- 若a && b的结果是true,基于||的短路特性,不会对c求值,整个表达式的结果就是true。
- 若a && b的结果是false,则需要对c求值:
- 若c为true,整个表达式的结果为true。
- 若c为false,整个表达式的结果为false。