java運算優先順序,java優先順序

來源:互聯網
上載者:User

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);//410         System.out.println(3+(5>>1));//511     }12 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.