Java運算符及優先級

Java運算符優先級:

 

 

 

 

 

 

 

 

 

 

 

 

Java支持的運算符:

序列號

符號

名稱

結合性(與操作數)

目數

說明

 

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.println((!'1'||'1')+5);//編譯錯誤
 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);//4
10         System.out.println(3+(5>>1));//5
11     }
12 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章