运算符是一种特殊符号,用以表示数据的运算、赋值和比较。运算符共分为算术运算符、赋值运算符、比较运算符、逻辑运算符、移位运算符。
一、算术运算符
算术运算符的功能是做各种算术运算,其操作数可以是字符型、整型或浮点型数据。Java中的算术运算符又可以分为两种:单目运算符和双目运算符。单目运算符的操作数只有一个,只对唯一的操作数进行处理。双目运算符操作数有两个,运算过程中由两个操作数参与完成。算术运算符见下表:
运算符 |
运算 |
范例 |
结果 |
类型 |
+ |
正号 |
+3 |
3 |
单目运算符 |
- |
负号 |
b=4;-b; |
-4 |
单目运算符 |
+ |
加 |
5 + 5 |
10 |
双目运算符 |
- |
减 |
6 - 4 |
2 |
双目运算符 |
* |
乘 |
2 * 2 |
4 |
双目运算符 |
/ |
除 |
5 / 5 |
1 |
双目运算符 |
% |
取模 |
5 % 3 |
2 |
双目运算符 |
++ |
自增(前) |
a = 2; b = ++a; |
a = 3; b = 3 |
单目运算符 |
++ |
自增(后) |
a = 2; b = a++; |
a = 3; b = 2 |
单目运算符 |
-- |
自减(前) |
a = 2; b = --a; |
a = 1; b = 1 |
单目运算符 |
-- |
自减(后) |
a = 2; b = a--; |
a = 1; b = 2 |
单目运算符 |
+ |
字符串相加 |
"Hel" + "lo" |
"Hello" |
双目运算符 |
注意:自增与自减位置的区别。
二、赋值运算符
赋值运算符的作用就是将一个值赋值给另一个变量,最常用的赋值运算符是“=”,赋值运算符的左边必须是一个变量,而不是一个值。赋值运算符见下表:
运算符 |
运算 |
范例 |
结果 |
= |
赋值 |
a = 3; b = 2; |
a = 3; b = 2; |
+= |
加等于 |
a = 3; b = 2; a += b; |
a = 5; b = 2; |
-= |
减等于 |
a = 3; b = 2; a -= b; |
a = 1; b = 2; |
*= |
乘等于 |
a = 3; b = 2; a *= b; |
a = 6; b = 2; |
/= |
除等于 |
a = 3; b = 2; a /= b; |
a = 1; b = 2; |
%= |
摸等于 |
a = 3; b = 2; a %= b; |
a = 1; b = 2; |
三、关系运算符
关系运算符用来比较两个值的关系,是双目运算符,运算结果为boolean类型。关系运算符见下表:
运算符 |
运算 |
范例 |
结果 |
== |
相等于 |
4 == 3 |
false |
!= |
不等于 |
4 != 3 |
true |
< |
小于 |
4 < 3 |
false |
> |
大于 |
4 > 3 |
true |
<= |
小于等于 |
4 <= 3 |
false |
>= |
大于等于 |
4 >= 3 |
true |
instanceof |
检查是否为类的对象 |
"a" instanceof String |
true |
四、逻辑运算符
逻辑运算符用于对boolean类型结果的表达式进行运算,运算结果都是boolean型的。
运算符 |
运算 |
范例 |
结果 |
& |
与 |
false & true |
false |
| |
或 |
false | true |
true |
^ |
异或 |
true ^ false |
true |
! |
非 |
! true |
false |
&& |
与 |
false && true |
false |
|| |
或 |
false || true |
true |
注意:&与&&的区别在于,如果使用前者连接,那么无论何种情况,&两边的表达式都会参与运算。如果使用后者连接,当&&左边为false时,右边将不参与运算。同理|和||。
五、位运算符
数据在计算机内部是以二进制存储编码的,Java允许对这些二进制进行位运算。位运算符见下表:
位运算符 |
运算 |
范例 |
功能描述 |
& |
与 |
x & y |
按位进行与运算 |
| |
或 |
x | y |
按位进行或运算 |
^ |
异或 |
x ^ y |
按位进行异或运算 |
! |
非 |
!x |
按位进行非运算 |
>> |
右移 |
x >> y |
将x的二进制编码右移y位,前面的位由符号填充 |
<< |
左移 |
x << y |
将x的二进制编码左移y位,低位补0 |
>>> |
无符号右移 |
x >>> y |
将x的二进制编码右移y位,前面的位由0填充 |
六、其他运算符
七、运算符优先级
运算符 |
优先级 |
() [] |
高 |
++ -- ~ ! |
|
* / % |
|
+ - |
|
>> >>> << |
|
> >= < <= |
|
== != |
|
& |
|
^ |
|
| |
|
&& |
|
|| |
|
?: |
|
= += -= *= /= &= |= ^= <<= >>= >>>= |
低 |