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運算符優先級
當多個運算符出現在一個表達式中,會涉及到運算的優先級別的問題,在一個多運算符的表達式中,運算級別的不同會導致結果差別很大。
順序:算術→位運算→字符串運算→關系運算→邏輯運算→賦值運算
算術:正號負號>乘除余>加減;
關系運算:並列
邏輯:反>與>或/邏輯短路或>邏輯異或
賦值:自增自減>賦值、自乘、自除……
另外,要優先運算哪個,可以用()小括號括起來。
