1.算術運算符
作用是數字的計算,包括:正號+,負號-,乘*,除/,余%,加+,減-,其算法與數學中的運算相同。
算術運算符實例(假設變量A=10,變量B=20):
操作符
描述
例子
+
正號
+A=+10 表示正數10
-
負號
-B=-20 表示負數20
+
加號
A+B=30
-
減號
A-B=-10
*
乘號
A*B=200
/
除號
B/A=2
%
取余
B%A=0
2.位運算
將數字轉成int型後,把二進制的0當作false,1當作true,每一位進行邏輯運算,運算結果為int型。運算符包括:位非~,位與&,位或|,位異或^,位左移<<,位右移>>,位補零右移>>>
位運算實例(假設變量A=60(二進制為00111100),變量B=13(二進制偉00001101)):
操作符
描述
例子
~
位非:翻轉操作數的每一位
(~A),得到11000011,即195
&
位與:當且僅當兩個操作數的某一位都非0時該位才為1
(A&B),得到00001100,即12
|
位或:只要兩個操作數的某一位有一個非0時該位就為1
(A|B),得到00111101,即61
^
位異或:兩個操作數的某一位不相同時改位為1
(A^B),得到00110001,即49
<<
位左移:左操作數按位左移右操作數指定的數
A<<2,得到11110000,即240
>>
位右移:左操作數按位右移右操作數指定的數
A>>2,得到00001111,即15
>>>
位補零右移:左操作數的值按右操作數指定的位數右移,移動得到的空位為零填補。
A>>>2,得到00001111,即15
注:
1)位左移:將int型整數的二進制每位向左移動若干位,前面若干位左移出int范圍的bit丟棄,數字位移動到符號位,後面若干位空出的bit補0。如果符號位沒有發生改變,則等同於乘2的n次方
2)位右移:將int型整數的二進制每位向右移動若干位,後面若干位右移出int范圍的bit丟棄,前面若干位空出的bit全都補符號位數字。等同於除2的n次方。
3)位補零右移:將int型整數的二進制每位向右移動若干位,後面若干位右移出int范圍的bit丟棄,前面若干位空出的bit全都補0。正數等同於除2的n次方,負數補零右移後變正數。
3.字符串處理
只有一個操作符“+” , 作用是將多個字符串連接成1個大的字符串。
字符串運算實例(變量A=“abc”,變量B=123):
操作符
描述
例子
+
連接符:將多個字符串連接成1個大的字符串
A+B=”ABC123”
4.關系運算
判斷2者的關系,返回布爾值。包括:判斷相等==,判斷不等!=,判斷大於>,判斷大於等於>=,判斷小於<,判斷小於等於<=。
關系運算符實例(假設變量A=10,變量B=20):
操作符
描述
例子
==
判斷相等:檢查兩個操作數的值是否相等,如果相等則條件為真。
(A==B)結果為假(非真)
!=
判斷不等於:檢查兩個操作數的值是否相等,如果不相等則條件為真。
(!A==B)結果為真
>
判斷大於:檢查左操作數的值是否大於右操作數,如果大於則條件為真。
(A>B)結果為假
>=
判斷大於等於:檢查左操作數的值是否大於等於右操作數,如果大於等於則條件為真。
(A>=B)結果為假
<
判斷小於:檢查左操作數的值是否小於右操作數是,如果小於則條件為真。
(A<B)結果為真
<=
判斷小於等於:檢查左操作數的值是否小於等於右操作數是,如果小於等於則條件為真。
(A<=B)結果為真
5.邏輯運算
關於關系的復合運算,返回布爾值。包括:邏輯反!,邏輯與&,邏輯或|,邏輯異或^。
邏輯運算實例(假設布爾變量A為真,B為假):
操作符
描述
例子
!
邏輯反:用來反轉操作數的邏輯狀態。如果條件為true,則邏輯非運算符將得到false。
(!B)為真
&
邏輯與:當且僅當兩個操作數都為真,條件才為真。(全真才真)
(A&B)為假
|
邏輯或:兩個操作數任何一個為真時,條件都為真。(全假才假)
(A|B)為真
^
邏輯異或:兩個操作數相同為假,不同為真。
(A^B)為真
附:
1.邏輯短路與,與邏輯與不同的是,一旦判斷前一關系結果為假,則後續關系不做判斷,直接返回結果為假。
2.邏輯短路或,與邏輯或不同的是,一旦判斷前一關系結果為真,則後續關系不做判斷,直接返回結果為真。
6.賦值運算
自增一++,自減一--,賦值=,自乘*=,自除/=,自余%=,自加+=,自減-=,自與&=,......
賦值運算實例:
操作符
描述
例子
++
自增一,操作數的值加1
當B=20時,B++=21
--
自減一,操作的值減1
當B=20時,B--=19
=
簡單的賦值運算符,將右操作數的值賦給左側操作數
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
7.條件運算符
邏輯判斷“?:”,用法:變量 x = (表達式) ? value if true : value if false ,邏輯判斷?值1:值2,作用是判斷邏輯是真還是假,如果是真則返回值1,否則返回值2。
例如(1>2)?3:4,因1>2為假,所以返回4,即(1>2)?3:4的結果為4。
附:Java運算符優先級
當多個運算符出現在一個表達式中,會涉及到運算的優先級別的問題,在一個多運算符的表達式中,運算級別的不同會導致結果差別很大。
順序:算術→位運算→字符串運算→關系運算→邏輯運算→賦值運算
算術:正號負號>乘除余>加減;
關系運算:並列
邏輯:反>與>或/邏輯短路或>邏輯異或
賦值:自增自減>賦值、自乘、自除……
另外,要優先運算哪個,可以用()小括號括起來。