首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 運算子大全:算術、關係、位元、邏輯、賦值、instanceof、移位與優先順序完整表

     編輯:Java 相關知識

一、算術運算子

  • 單目:+(正號)、-(負號)、++(遞增)、--(遞減)
  • 雙目:+ - * / %(取餘)
  • 三目:a > b ? true : false — 條件運算子,含關係運算子、?、: 兩個運算元

二、關係運算子

==  !=  >  <  >=  <=

結果為 boolean。

三、位元與邏輯運算子

位元運算(作用於整數位模式)

  • &(AND):同為 1 → 1
  • |(OR):任一為 1 → 1
  • ^(XOR):不同 → 1
  • ~(NOT):0↔1 翻轉

例:1100 & 1010 = 1000、1100 | 1010 = 1110、1100 ^ 1010 = 0110

邏輯運算(作用於 boolean)

  • &&(短路 AND)
  • ||(短路 OR)
  • !(NOT)
  • &、| 也可用於 boolean,但不短路(兩邊皆運算)

四、賦值運算子

=  +=  -=  *=  /=  %=  &=  ^=  |=  <<=  >>=  >>>=

五、instanceof 運算子

雙目,左邊為物件,右邊為類別/介面。物件為右邊型別(含子類別/實作介面)的實例 → true。

六、移位運算子

  • <<:帶號左移(低位補 0)
  • >>:帶號右移(高位補符號位)
  • >>>:無號右移(高位補 0)

例:8 >>> 2 = 2(00001000 → 00000010)

七、運算子優先順序(高→低)

[]  ()  ++ --  ! ~ instanceof  * / %  + -  << >> >>>  
< <= > >= == !=  &  ^  |  &&  ||  ?:  = += -= ...

建議:多用括號明確運算順序,提升可讀性,避免靠記憶優先順序。

八、型別轉換與運算細節

  • 強制轉型:數值型別間可雙向轉換;物件不可強制為基本型別;基本型別不可轉為物件/陣列。
  • 整數運算提升:byte/short/char 參與運算自動提升為 int;有 long 則提升為 long。結果永不為 byte/short/char。
  • 溢位行為:超出型別範圍取模(如 Integer.MAX_VALUE + 1 = Integer.MIN_VALUE)。
  • 字串連接 +:任一運算元為 String,另一邊自動 toString()。編譯器轉為 StringBuilder.append() 鏈。
  • 陣列存取:arr[index],索引 0 ~ length-1。
  • 物件 instanceof:判斷型別關係。
  • 浮點運算:含 %(a % b == a - ((int)(a/b))*b)。單精度運算得單精度,含雙精度則雙精度。
  • 布林運算:& | ^ ! && ||,短路特性同邏輯運算子。

九、& vs && 經典陷阱

int[] a = {1,2,3};
if (a[0]==2 & a[3]==4)  // 兩邊皆運算 → ArrayIndexOutOfBoundsException
if (a[0]==2 && a[3]==4) // 左邊 false → 短路,不運算右邊,安全

& 不短路,&& 短路。同理 | vs ||。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved