列號 | 符號 | 名稱 | 結合性(與操作數) | 目數 | 說明 |
1 | . | 點 | 從左到右 | 雙目 |
|
( ) | 圓括號 | 從左到右 |
|
| |
[ ] | 方括號 | 從左到右 |
|
| |
2 | + | 正號 | 從右到左 | 單目 |
|
- | 負號 | 從右到左 | 單目 |
| |
++ | 自增 | 從右到左 | 單目 | 前綴增,后綴增 | |
- - | 自減 | 從右到左 | 前綴減,后綴減 | ||
~ | 按位非/取補運算 | 從右到左 | 單目 |
| |
! | 邏輯非 | 從右到左 | 單目 | “!”不可以與“=”聯用 | |
3 | * | 乘 | 從左到右 | 雙目 |
|
/ | 除 | 從左到右 | 雙目 | 整數除法:取商的整數部分,小數部分去掉,不四舍五入 | |
% | 取余 | 從左到右 | 雙目 |
| |
4 | + | 加 | 從左到右 | 雙目 |
|
- | 減 | 從左到右 | 雙目 |
| |
5 | << | 左移位運算符 | 從左到右 | 雙目 |
|
>> | 帶符號右移位運算符 | 從左到右 | 雙目 |
| |
>>> | 無符號右移 | 從左到右 | 雙目 |
| |
6 | < | 小于 | 從左到右 | 雙目 | 關系運算符“大于”說明 |
<= | 小于或等于 | 從左到右 | 雙目 |
| |
> | 大于 | 從左到右 | 雙目 |
| |
>= | 大于或等于 | 從左到右 | 雙目 |
| |
instanceof | 確定某對象是否屬于指定的類 | 從左到右 | 雙目 |
| |
7 | == | 等于 | 從左到右 | 雙目 | 關系運算符“==”說明 |
!= | 不等于 | 從左到右 | 雙目 |
| |
8 | & | 按位與 | 從左到右 | 雙目 |
|
9 | | | 按位或 | 從左到右 | 雙目 |
|
10 | ^ | 按位異或 | 從左到右 | 雙目 |
|
11 | && | 短路與 | 從左到右 | 雙目 |
|
12 | || | 短路或 | 從左到右 | 雙目 |
|
13 | ? : | 條件運算符 | 從右到左 | 三目 |
|
14 | = | 賦值運算符 | 從右到左 | 雙目 |
|
+= | 混合賦值運算符 |
| |||
-= |
| ||||
*= |
| ||||
/= |
| ||||
%= |
| ||||
&= |
| ||||
|= |
| ||||
^= |
| ||||
<<= |
| ||||
>>= |
| ||||
>>>= |
|
說明:
1、算數運算符
+ :加法
- :減法
* :乘法
/ :除法
% :取余運算
2、關系運算符
< :只能比較基本類型數據之間的關系,不能比較對象之間的關系。
> : (同關系運算符“<”)
<=: (同關系運算符“<”)
>=: (同關系運算符“<”)
== :若使用該運算符比較兩個對象的引用(變量),則實質上是比較兩個變量是否引用了相同的對象。所謂相同的對象是指,是否是在堆棧(Heap)中開辟的同一塊兒內存單元中存放的對象。
若比較兩個對象的引用(變量)所引用的對象的內容是否相同,則應該使用equals()方法,該方法的返回值類型是布爾值。需要注意的是:若用類庫中的類創建對象,則對象的引用調用equals()方法比較的是對象的內容;若用自定義的類來創建對象,則對象的引用調用equals()方法比較的是兩個引用是否引用了同一個對象,因為第二種情況equals()方法默認的是比較引用。
!= :(同關系運算符“==”)
3、邏輯運算符 (操作符只能是布爾類型的)
&&
||
!
1 public class Demo { 2 public static void main(String[] args) { 3 // System.out.//編譯錯誤 4 // System.out.println(!5);//編譯錯誤 5 // System.out.println(('1'||'1')+5);//編譯錯誤 6 // System.out.println(1||2);//編譯錯誤 7 // System.out.println(5-3||4-2);//編譯錯誤 8 System.out.println(5<3||4>3);//true 9 }10 }4、位運算符
&
|
^
! :不可以與=聯用,因為!是一元操作符;不可以對布爾類型的數據進行按位非運算
5、移位運算符(只能處理整數運算符)
Char、byte、short類型,在進行移位之前,都將被轉換成int類型,移位后的結果也是int類型;移位符號右邊的操作數只截取其二進制的后5位(目的是防止因為移位操作而超出int類型的表示范圍:2的5次方是32,int類型的最大范圍是32位);對long類型進行移位,結果仍然是long類型,移位符號右邊的操作符只截取其二進制的后6位。
<< :
>> :若符號位為正,則在最高位插入0;若符號位為負,則在最高位插入1
>>> :無論正負,都在最高位插入0
1 public class Demo { 2 public static void main(String[] args) { 3 // 0000 0000 0000 0101 4 // 0000 0000 0000 0010 5 System.out.println(5>>1);//2 6 // 0000 0000 0000 1000 7 // 0000 0000 0000 0100 8 System.out.println(8>>1);//4 9 System.out.println(3+5>>1);//410 System.out.println(3+(5>>1));//511 }12 }新聞熱點
疑難解答