JAVA 运算符归纳总结
一、算术运算符
运算符 |
说明 |
示例 |
+ |
加法/字符串连接 |
1 + 1 = 2,"a" + "b" |
- |
减法 |
2 - 1 = 1 |
* |
乘法 |
3 * 2 = 6 |
/ |
除法 |
5 / 2 = 2 |
% |
取模(余数) |
5 % 2 = 1 |
++ |
自增 |
i++,++i |
-- |
自减 |
i--,--i |
// 加法/字符串连接
int a = 1, b = 2;
String str1 = "Hello", str2 = "Java";
System.out.println(a + b); // 输出结果为 3
System.out.println(str1 + str2); // 输出结果为 "HelloJava"
// 取模(余数)
int c = 5, d =2;
System.out.println(c % d); // 输出结果为 1
// 自增/自减
int i = 1;
System.out.println(i++); // 输出结果为 1,i 的值变为2
System.out.println(++i); // 输出结果为 3,i 的值为3
二、关系运算符
运算符 |
说明 |
示例 |
== |
判断两个值是否相等 |
1 == 1 结果为 true |
!= |
判断两个值是否不相等 |
1 != 2 结果为 true |
> |
大于 |
3 > 2 结果为 true |
< |
小于 |
2 < 3 结果为 true |
>= |
大于等于 |
3 >= 3 结果为 true,2 >= 3 结果为false |
<= |
小于等于 |
3 <= 3 结果为 true,3 <= 2 结果为false |
int a = 1, b = 2, c = 3;
System.out.println(a == b); // 输出结果为 false
System.out.println(b != c); // 输出结果为 true
System.out.println(c > b); // 输出结果为 true
System.out.println(b < c); // 输出结果为 true
System.out.println(c >= a); // 输出结果为 true
System.out.println(a <= b); // 输出结果为 true
三、逻辑运算符
运算符 |
说明 |
示例 |
&& |
逻辑与,当且仅当两个表达式都为 true 时才为 true |
true && false 结果为false |
|| |
逻辑或,当两个表达式有一个为 true 时就为 true |
true || false 结果为 true |
! |
逻辑非,取反 |
!true 结果为 false |
boolean a = true, b = false;
System.out.println(a && b); // 输出结果为 false
System.out.println(a || b); // 输出结果为 true
System.out.println(!a); // 输出结果为 false
四、赋值运算符
运算符 |
说明 |
示例 |
= |
等于(赋值) |
a = 1 |
+= |
加等于 |
a += 1 等价于 a = a + 1 |
-= |
减等于 |
a -= 1 等价于 a = a - 1 |
*= |
乘等于 |
a *= 2 等价于 a = a * 2 |
/= |
除等于 |
a /= 2 等价于 a = a / 2 |
%= |
模等于 |
a %= 2 等价于 a = a % 2 |
int a = 1, b = 2;
a += b; // 相当于 a = a + b,a 的值变为 3
a *= b; // 相当于 a = a * b,a 的值变为 6
五、位运算符
位运算符操作的是二进制数,因此需要将十进制数转换成二进制数进行操作。
运算符 |
说明 |
示例 |
& |
按位与,两个二进制数相应位上的数字都为 1 才为 1 |
3 & 5 = 1 |
| |
按位或,两个二进制数相应位上的数字有一个为 1 就为 1 |
3 | 5 = 7 |
^ |
按位异或,两个二进制数相应位上数字不相同才为 1 |
3 ^ 5 = 6 |
~ |
按位取反,0 变为 1,1 变为 0 |
~3 = -4 |
<< |
左移,将二进制数向左移若干位(高位丢弃,低位补 0) |
3 << 1 = 6 |
>> |
右移,将二进制数向右移若干位(低位丢弃,高位补符号位) |
-3 >> 1 = -2 |
>>> |
无符号右移,将二进制数向右移若干位,高位补 0 |
-3 >>> 1 = 2147483646 |
int a = 3, b = 5;
System.out.println(a & b); // 输出结果为 1,3 的二进制数为 0011,5 的二进制数为 0101,相应位上数字都为 1 的只有第二位,即十进制数 1
System.out.println(a | b); // 输出结果为 7,3 的二进制数为 0011,5 的二进制数为 0101,相应位上数字为 1 的有第二位和第三位,即十进制数 6+1=7
System.out.println(a ^ b); // 输出结果为 6,3 的二进制数为 0011,5 的二进制数为 0101,相应位上数字不同的只有第一位和第四位,即十进制数 8+2=10,去掉高位为 1 的十进制数 8,得到十进制数 2,即二进制数 0010
System.out.println(~a); // 输出结果为 -4,将 3 的二进制数按位取反得到 1100,转换成十进制数即为 -4
System.out.println(a << 1); // 输出结果为 6,将 3 的二进制数向左移一位得到 0110,即十进制数 6
System.out.println(b >> 1); // 输出结果为 2,将 5 的二进制数向右移一位得到 0010,即十进制数 2
System.out.println(-3 >>> 1); // 输出结果为 2147483646,将 -3 的二进制数向右移一位并补 0 得到 01111111111111111111111111111110,转换成十进制数即为 2147483646
六、其他运算符
1. 条件运算符(三元运算符)
它也称为三元运算符,因为它需要三个操纵数。
运算符 |
说明 |
示例 |
?: |
条件运算符 |
表达式1?表达式2:表达式3 |
int a = 1, b = 2;
int max = a > b ? a : b; // 判断 a 是否大于 b,如果成立则 max 赋值为 a,如果不成立则 max 赋值为 b
System.out.println(max); // 输出结果为 2
2. instanceof 运算符
instanceof 运算符用于判断一个对象是否是一个类的实例。
class Animal {
}
class Dog extends Animal {
}
class Cat extends Animal {
}
public class Test {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Dog();
Animal animal3 = new Cat();
boolean b1 = animal1 instanceof Animal;
boolean b2 = animal2 instanceof Animal;
boolean b3 = animal3 instanceof Animal;
System.out.println(b1); // 输出结果为 true
System.out.println(b2); // 输出结果为 true
System.out.println(b3); // 输出结果为 true
}
}
总结
本文介绍了 Java 中常见的运算符,包括算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、条件运算符、instanceof 运算符等。注意 Java 中运算符的优先级和运算的结果类型,合理运用运算符可以让代码更加简洁和高效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA 运算符归纳总结 - Python技术站