Java 操作符(3)

Seasons20發表於2019-01-19

在最底層,Java中的資料是通過使用操作符來操作的。

1.操作符

  • 用於運算元,接受一個或多個引數,並生成一個新值.
  • 副作用:操作符可能會改變運算元自身的值.
  • 能改變其運算元的操作符,最普遍的用途是用來產生副作用.
  • 使用有副作用的操作符和沒有副作用的操作符,生成的值沒有什麼區別.

2.優先順序

  • 決定計算順序.

3.賦值

  • “=”:將右邊的值附給左邊的變數.
  • 別名現象:是Java操作物件的一種基本方式.(物件傳遞的是引用,出現不同的名字)

4.算術操作符

  • “+”, “-“, “*”, “/”, “%”(向下取整)
  • 一元加減號:編譯器自動識別,規範加括號.(eg:x = a*(-b))
  • 一元減號:改變資料的符號.
  • 一元加號:與一元減號對應,將較小型別的運算元提升為int.

5.自增,自減

  • “i++”,”++i”,”i–“,”–i”
  • 除涉及賦值的操作符以外,唯一具有”副作用”的操作符.
  • 字首:先執行運算,在生成值.
  • 字尾:先生成值,在執行運算.

6.關係操作符

  • “>”, “<“, “>=”, “<=”, “==”, “!=”
  • 返回true/false
  • equals :預設比較引用,重寫比較內容,不適合用於基本型別.
  • ==:比較引用.

7.邏輯操作符

  • “&&”, “||”, “!”
  • 短路(潛在的效能提升).

8.直接常量

  • “0x?”(十六進位制),”0?”(十進位制),”?l/L”(浮點型),”?d/D”(雙精度型)
  • 指數記數:e 代表 “10的冪次”.

9.按位操作符

  • “&”, “|”, “~”, “^”
  • 可與”=”聯合使用.

10.移位操作符

  • “<<“(左移,低位補0), “>>”(有符號右移,高位正插0,負插1), “>>>”(無符號右移,高位插0)
  • 只可用來處理整數型別.
  • 可與”=”聯合使用.

11.三元運算子

  • boolean-exp ? value0 : value1;

12.字串操作符

  • “+”, “+=”.
  • String 過載了 “+”,”+=”.
  • 操作符過載:java不能實現自己的過載操作符.
  • 如果表示式以一個字串起頭,那麼後續所有運算元都必須是字串型別(編譯器會把雙引號內的字元序列自動轉成字串).

13.型別轉換操作符

  • 型別轉換:(cast).
  • 向上轉型:強制型別轉換.
  • 向下轉型:不必顯示地進行轉換.
  • 截尾:向下取整.
  • 舍入:Math.round(),四捨五入.
  • 對基本資料型別進行執行算術運算或按位運算,只要型別比int小,在運算之前,會自動轉換成int,最終結果就是int型,如果要把結果賦值給較小的型別,就必須使用型別轉換.

14.sizeof

  • sizeof()操作符:返回資料分配的位元組數.
  • Java不需要sizeof,因為所有型別在所有機器中的大小是相同的.

END

相關文章