# 运算符

引用自Java 运算符

Java中提供的运算符可以分为以下几组:

  • 算术运算符

  • 关系运算符

  • 位运算符

  • 逻辑运算符

  • 赋值运算符

  • 其他运算符

# 算术运算符

示例:A = 10, B = 20

运算符 描述 示例
+ 加法 - 运算符两侧的值相加 A + B 等于 30
- 减法 - 左操作书减去右操作数 A - B 等于 -10
* 乘法 - 操作符两侧的值相乘 A * B 等于 200
/ 除法 - 左操作数除以右操作数 B / A 等于 2
% 取模 - 左操作数除以右操作数的余数 B % A 等于 0
++ 自增 - 操作数的值加1 B++ 或 ++B 等于21
-- 自减 - 操作数的值减1 B-- 或 --B 等于19

前缀自增自减(++a, --a):先进行自增或自减运算,再进行表达式运算。

后缀自增自减(a++, a--):先进行表达式运算,再进行自增或自减运算。

# 关系运算符

示例:A = 10, B = 20

运算符 描述 示例
== 检查两个操作数的值是否相等,相等返回true A == B 为false
!= 检查两个操作数的值是否不等,不相等返回true A != B 为true
> 检查左操作数的值是否大于右操作数的值,大于则返回true A > B 为false
< 检查左操作数的值是否小于右操作数的值,小于则返回true A < B 为true
>= 检查左操作数的值是否大于或等于右操作数的值,大于或等于则返回true A >= B 为false
<= 检查左操作数的值是否小于或等于右操作数的值,小于或等于则返回true A <= B 为true

# 位运算符

Java定义了位运算符,可应用于int、long、short、char、byte等类型。位运算符作用在所有的位上,并且按位运算。

操作符 描述
& 如果相对应的位都是1,结果为1,否则为0
| 如果相对应的位都是0,结果为0,否则为1
^ 如果相对应位的值相同,结果为0,否则为1
~ 按位取反运算符,翻转操作数的每一位,即0变成1,1变成0
<< 按位左移运算符,左操作数按位左移右操作数指定的位数
>> 按位右移运算符,左操作数按位右移右操作数指定的位数
>>> 按位右移补零操作符,左操作数的值按右操作数指定的位数右移,移动得到的空位用0填充
示例:A = 60, B = 13
A = 0011 1100
B = 0000 1101

----------
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A = 1100 0011
A << 2 = 1111 0000
A >> 2 = 1111
A >>> 2 = 0000 1111
1
2
3
4
5
6
7
8
9
10
11
12

# 逻辑运算符

示例:A = true, B = false

操作符 描述 示例
&& 逻辑与运算符,当且仅当两个操作数都为true,才返回true A && B 为false
|| 逻辑或运算符,两个操作数中任意一个为true,就返回true A || B 为true
! 逻辑非运算符,反转操作数的逻辑状态,操作数为true,则结果为false !(A && B) 为true

短路逻辑运算符:当使用逻辑与运算符时,当第一个操作数为false时,其结果必定为false,此时不会再判断第二个操作数了;同样的,再使用逻辑或运算符时,当第一个操作数为true时,也不会再判断第二个操作数了。

# 赋值运算符

操作符 描述 示例
= 简单赋值运算符,将右操作数的值赋给左操作数 C = A + B 将A + B得到的值赋给C
+= 加和赋值运算符,将两侧操作数相加赋值给左操作数 C += A 等价于 C = C + A
-= 减和赋值运算符,将左操作数减去右操作数的结果赋值给左操作数 C -= A 等价于 C = C - A
*= 乘和赋值运算符,将两侧操作数相乘赋值给左操作数 C *= A 等价于 C = C * A
/= 除和赋值运算符,将左操作数除以右操作数的结果赋值给左操作数 C /= A 等价于 C = C / A
%= 取模和赋值运算符,将左操作数和右操作数取模后赋值给左操作数 C %= A 等价于 C = C % A
<<= 左移位赋值运算符 C <<= 2 等价于 C = C << 2
>>= 右移位赋值运算符 C >>= 2 等价于 C = C >> 2
&= 按位与赋值运算符 C &= 2 等价于 C = C & 2
^= 按位异或赋值运算符 C ^= 2 等价于 C = C ^ 2
|= 按位或赋值运算符 C |= 2 等价于 C = C | 2

# 其他运算符

  • 条件运算符(又称三目运算符、三元运算符)

    该运算符有三个操作数,并且需要判断布尔表达式的值。该运算符的主要功能是经过判断之后决定哪个值应该赋值给变量。

    var a = (expression) ? val1 : val2;
    
    1

    expression为true时,将val1赋值给a;为false时将val2赋值给a。

  • instanceof运算符

    instanceof 运算符用来在运行时指出对象是否是特定类的一个实例。

    boolean result = object instanceof class
    
    1

    如果object是class的一个实例,则instanceof运算符返回true,反之若object不是指定class的一个实例或者object为null,则返回false。在判断一个实例引用的类型时,使用的是实际类型,而不是声明的类型。