1. 程式人生 > >Java筆記丨08 運算子與表示式

Java筆記丨08 運算子與表示式

運算子

  • 算數運算子:+ - * / % ++ --
  • 關係運算符:> < >= <= == !=
  • 邏輯運算子:! & | ^ && ||
  • 位運算子:& | ^ ~ >> << >>>
  • 賦值運算子:= 擴充套件賦值運算子:+= -= *= /=
  • 字串連線運算子:+

^    表示位運算中的按位異或

~    取反

a<<b將二進位制形式的a逐位左移b位,最低位空出的b位補0

a>>b將二進位制形式的a逐位右移b位,最高位補原來的符號位

a>>>b無符號右移,將二進位制形式的a逐位右移b位,最高位補0

短路邏輯運算子

&& 第一個運算元為假則不判斷第二個運算元

||     第一個運算元為真則不判斷第二個運算元

移位運算子性質

適用資料型別:byte、short、char、int、long

對低於int型的運算元將先自動轉換成為int型再移位(整型提升,對所有的運算都這樣)

對於int型整數移位a>>b,系統先將b對32取模,得到的結果才是真正移位的位數

對於long型整數移位a>>b,先是將b對64取模

字串連線運算子+

“+”除了用於加法運算外,還可以用於對字串進行連線操作

    int i=300+5;

    String s=“hello,”+“world!”;

“+”運算子只要兩側的運算元中有一個是字串型別(String)型別,系統會自動將另一個運算元轉換為字串然後再進行連線

    int i=300+5;

    String s=“hello,”+i+“號”;

    System.out.println(s);//輸出:hello,305號

表示式

  • 表示式的是符合一定語法規則的運算子和運算元的序列
  • 表示式的型別和值

對錶達式中運算元進行運算得到的結果稱為表示式的值

表示式的值的資料型別即為表示式的型別

  • 表示式的運算順序

首先應該按照運算子的優先順序從高到低的順序進行

優先順序相同的運算子按照事先約定的結合方向進行

  • 表示式中的型別轉換

當有不同種類的混合運算時:

int->long->float->double

  • 整型提升

所有的byte,short,char參與算術運算等轉為int

  • 問題

    a=2;

    b=a++ + ++a;//結果為6

    a++的副作用

  • 檢視反彙編的程式碼

使用javap -c類名