運算符是一種特殊符号,用以表示資料的運算、指派和比較。運算符共分為算術運算符、指派運算符、比較運算符、邏輯運算符、移位運算符。
一、算術運算符
算術運算符的功能是做各種算術運算,其操作數可以是字元型、整型或浮點型資料。Java中的算術運算符又可以分為兩種:單目運算符和雙目運算符。單目運算符的操作數隻有一個,隻對唯一的操作數進行處理。雙目運算符操作數有兩個,運算過程中由兩個操作數參與完成。算術運算符見下表:
運算符
運算
範例
結果
類型
+
正号
+3
單目運算符
-
負号
b=4;-b;
-4
加
5 + 5
10
雙目運算符
減
6 - 4
2
*
乘
2 * 2
4
/
除
5 / 5
1
%
取模
5 % 3
++
自增(前)
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 += 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 = 3; b = 2; a %= b;
三、關系運算符
關系運算符用來比較兩個值的關系,是雙目運算符,運算結果為boolean類型。關系運算符見下表:
==
相等于
4 == 3
false
!=
不等于
4 != 3
true
<
小于
4 < 3
>
大于
4 > 3
<=
小于等于
4 <= 3
>=
大于等于
4 >= 3
instanceof
檢查是否為類的對象
"a" instanceof String
四、邏輯運算符
邏輯運算符用于對boolean類型結果的表達式進行運算,運算結果都是boolean型的。
&
與
false & true
|
或
false | true
^
異或
true ^ false
!
非
! true
&&
false && true
||
false || true
注意:&與&&的差別在于,如果使用前者連接配接,那麼無論何種情況,&兩邊的表達式都會參與運算。如果使用後者連接配接,當&&左邊為false時,右邊将不參與運算。同理|和||。
五、位運算符
資料在計算機内部是以二進制存儲編碼的,Java允許對這些二進制進行位運算。位運算符見下表:
位運算符
功能描述
x & y
按位進行與運算
x | y
按位進行或運算
x ^ y
按位進行異或運算
!x
按位進行非運算
>>
右移
x >> y
将x的二進制編碼右移y位,前面的位由符号填充
<<
左移
x << y
将x的二進制編碼左移y位,低位補0
>>>
無符号右移
x >>> y
将x的二進制編碼右移y位,前面的位由0填充
六、其他運算符
三目運算符:一般形式為:<邏輯表達式1> ? <表達式2> : <表達式3>
():用于強制類型轉換、方法調用。
[]:聲明、建立數組及通路資料中的特定元素。
new:建立對象、數組。
.:通路類成員變量,對象成員變量。
七、運算符優先級
優先級
() []
高
++ -- ~ !
* / %
+ -
>> >>> <<
> >= < <=
== !=
?:
= += -= *= /= &= |= ^= <<= >>= >>>=
低