目录
显示
Java 中的运算符主要有以下几种类型:
1. 算术运算符
加法+
减法:-
乘法:*
除法:/
取模:%
eg:13 % 2=1
2. 赋值运算符
=
、+=
、-=
、*=
、/=
和 %=
等。
i++和++i
`i++` 是后缀增量运算符,它先返回 `i` 的当前值,然后再将 `i` 的值增加 1。例如,如果 `i` 的初始值为 3,则执行 `j = i++` 后,`j` 的值为 3,`i` 的值为 4。
`++i` 是前缀增量运算符,它先将 `i` 的值增加 1,然后再返回增加后的值。例如,如果 `i` 的初始值为 3,则执行 `j = ++i` 后,`j` 的值为 4,`i` 的值也为 4。
3. 比较运算符
==
、!=
、>
、>=
、<
和 <=
。
4. 逻辑运算符
常见的逻辑运算符包括 &&
、||
和 !
。
5. 位运算符
用于对二进制位进行操作,并返回一个整数值。常见的位运算符包括 &
、|
、^
、~
、<<
、>>
和 >>>
。
6. 条件运算符
也称为三元运算符,用于根据条件选择两个值中的一个。常见的条件运算符为 ?:
,其语法为 condition ? value1 : value2
,如果条件为真,则返回 value1
,否则返回 value2
。
7. instanceof 运算符
用于测试对象是否为特定类或其子类的实例。常见的用法为 object instanceof ClassName
,如果 object 是 ClassName 类或其子类的实例,则返回 true,否则返回 false。
8. 其他运算符
Java 还有一些其他的运算符,例如字符串连接运算符 +
,类型转换运算符 (type)
,数组访问运算符 []
等。
优先级🙋♂️
- 一元运算符:例如取反运算符
!
,正负号运算符+
和-
,以及前缀增量和减量运算符++
和--
。 - 乘法和除法运算符:例如乘法运算符
*
,除法运算符/
和取模运算符%
。 - 加法和减法运算符:例如加法运算符
+
和减法运算符-
。 - 移位运算符:例如左移位运算符
<<
,右移位运算符>>
和无符号右移位运算符>>>
。 - 按位与运算符:例如按位与运算符
&
。 - 按位异或运算符:例如按位异或运算符
^
。 - 按位或运算符:例如按位或运算符
|
。 - 逻辑与运算符:例如逻辑与运算符
&&
。 - 逻辑或运算符:例如逻辑或运算符
||
。 - 三元条件运算符:例如条件运算符
? :
。 - 赋值运算符:例如赋值运算符
=
,加等于运算符+=
,减等于运算符-=
,乘等于运算符*=
,除等于运算符/=
和取模等于运算符%=
等。
位运算
Java提供了两种右移运算符:“>>” 和">>>"。其中,“>>”被称为有符号右移运算符,“>>>”被称为无符号右移运算符,它们的功能是将参与运算的对象对应的二进制数右移指定的位数。
二者的不同点在于“>>”在执行右移操作时,若参与运算的数字为正数,则在高位补0;若为负数,则在高位补1。而“>>>”则不同,无论参与运算的数字为正数或为负数,在执运算时,都会在高位补0。
1左移1次:1 << 1 = 00000001变为 00000010 = 2
-1左移1次:1 << 1 = 10000001变为 10000010 = -2
1无符号左移1次:1 << 1 = 00000001变为 00000010 = 2
-1左移1次:1 << 1 = 10000001变为 00000010 = -2
-5无符号右移1次 -5 >>> 1 = 2147483645