java 運算符 運行順序


優先級 運算符分類 結合順序 運算符

分隔符 左結合 .    []     ( )     ;      ,
一元運算符 右結合 !  ++     --     -   ~

算術運算符

移位運算符

左結合 *     /      %    +     -      <<   >>   >>>
關係運算符 左結合 <     >     <=   >=   instanceof(Java 特有)   = =  !=
邏輯運算符 左結合 ! &&  ||  ~  &  |  ^ 
三目運算符 右結合 布爾表達式?表達式1:表達式2
賦值運算符 右結合 =  *=     /=  %=   +=   -=    <<= >>= >>>=  &=  *=  |=

 

一、一元運算符

    因操作數是一個,故稱爲一元運算符。

運算符 含義 例子
- 改變數值的符號,取反 -x(-1*x)
~ 逐位取反,屬於位運算符 ~x
++ 自加1 x++
-- 自減1 x--

++x 因爲++在前,所以先加後用。
x++ 因爲++在後,所以先用後加。

二、算術運算符

    所謂算術運算符,就是數學中的加、減、乘、除等運算。因算術運算符是運算兩個操作符,故又稱爲二元運算符。

運算符 含義 例子
+ 加法運算 x+y
- 減法運算 x-y
* 乘法運算 x*y
/ 除法運算 x/y
% 取模運算(求餘運算) x%y

    這些操作可以對不同類型的數字進行混合運算,爲了保證操作的精度,系統在運算過程中會做相應的轉化。數字精度的問題,我們在這裏不再討論。下圖中展示了運算過程中,數據自動向上造型的原則。

 

 

    注:1、實線箭頭表示沒有信息丟失的轉換,也就是安全性的轉換,虛線的箭頭表示有精度損失的轉化,也就是不安全的。
      2、當兩個操作數類型不相同時,操作數在運算前會子松向上造型成相同的類型,再進行運算。

示例如下:


三、移位運算符

   移位運算符操作的對象就是二進制的位,可以單獨用移位運算符來處理int型整數。

運算符 含義 例子
<< 左移運算符,將運算符左邊的對象向左移動運算符右邊指定的位數(在低位補0) x<<3
>> "有符號"右移運算 符,將運算符左邊的對象向右移動運算符右邊指定的位數。使用符號擴展機制,也就是說,如果值爲正,則在高位補0,如果值爲負,則在高位補1. x>>3
>>> "無符號"右移運算 符,將運算符左邊的對象向右移動運算符右邊指定的位數。採用0擴展機制,也就是說,無論值的正負,都在高位補0. x>>>3

 

四、關係運算符

Java具有完備的關係運算符,這些關係運算符同數學中的關係運算符是一致的。具體說明如下:

運算符 含義 例子
< 小於 x<y
> 大於 x>y
<= 小於等於 x<=y
>= 大於等於 x>=y
== 等於 x==y
!= 不等於 x!=y

instanceof操作符用於判斷一個引用類型所引用的對象是否是一個類的實例。操作符左邊的操作元是一個引用類型,右邊的操作元是一個類名或者接口,形式如下:

obj instanceof ClassName      或者    obj instanceof InterfaceName

關係運算符產生的結果都是布爾型的值,一般情況下,在邏輯與控制中會經常使用關係運算符,用於選擇控制的分支,實現邏輯要求。

需要注意的是:關係運算符中的"=="和"!="既可以操作基本數據類型,也可以操作引用數據類型。操作引用數據類型時,比較的是引用的內存地址。所以在比較非基本數據類型時,應該使用equals方法。


七、賦值運算符

賦值運算符是程序中最常用的運算符了,示例如下:

運算符 例子 含義
+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
/= x/=y x=x/y
%= x%=y x=x%y
>>= x>>=y x=x>>y
>>>= a>>>=y x=x>>>y
<<= a<<=y x=x<<y
&= x&=y x=x&y
|= x|=y x=x|y
^= x^=y x=x^y
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章