Java學習筆記(二)

2021-07-26 07:13:48 字數 2863 閱讀 3062

比較運算子

==  !=   >  >=  <  <=  instanceof

注意:比較運算子的結果都是boolean型,結果只有true或false

而instanceof用於檢查是否是類的物件

例如 「hello」 instanceof string  結果是true

邏輯運算子

&    !    |   ^   &&     ||

邏輯運算子用於連線兩個boolean型別的表示式

&:and(與)

只要兩邊有乙個為假時,結果為假

僅當兩邊都為真時,結果為真

|:or(或)

只要兩邊有乙個為真時,結果為真

僅當兩邊都為假時,結果為假

^:or(異或)

當兩邊相同時,結果為假 如:true ^ true =false false ^ false =false

當兩邊不同時,結果為真如:flase ^ true =truetrue ^ false =true

!:not(非)

非假為真,非真為假

&&:and(短路與)

運算結果與 & 相同

運算過程不同:

& 無論兩邊結果如何,兩邊表示式均參加運算

&& 當左邊的結果為假時,右邊的表示式不參加運算,即跳過(短路)

||:or(短路或)

運算結果與 | 相同

運算過程不同:

| 無論兩邊結果如何,兩邊表示式均參加運算

|| 當左邊的結果為真時,右邊的表示式不參加運算,即跳過(短路)

位運算子

&    |   ^   ~   >>>   >>    <<

位運算是直接對二進位制進行運算

注意:位運算中0為假,1為真。按位對齊運算。

&:與運算

如 6 & 3 = 2

實際過程為

0000-0000 0000-0000 0000-0000 0000-0110

& 0000-0000 0000-0000 0000-0000 0000-0011 

=  0000-0000 0000-0000 0000-0000 0000-0010   

= 2為了方便書寫,可寫成

0110

&0011

=0010=2

|:或運算

特點:凡是有效位(1是有效位),全保留

如 6 | 3 = 7

0110

|  0011

=0111=7

^:異或運算

特點:乙個數異或同乙個數兩次,結果還是這個數。可用於加密解密。

如  6 ^ 3 =5

0110

^ 0011

=0101 =5

0101

^0011

=0110 =6

~:反碼

即取反再加一

~6 = -7  即-7+1=-6

原碼0000-0000 0000-0000 0000-0000 0000-0110

取反1111-1111 1111-1111 1111-1111 1111-1001

加一1111-1111 1111-1111 1111-1111 1111-1010

<<:左移

相當於乘以2的倍數

如 3<<2=   意為3左移2位

0000-0000 0000-0000 0000-0000 0000-0011

移位0000-0000 0000-0000 0000-0000 0000-1100 =3*2^2=12

即整體向左移位超出的捨去,低位缺位的補0

例:最有效率的計算2*8

2*8=2<<3=16

即位運算最有效率

>>:右移

相當於除以2的倍數

與左移同理,整體右移,超出的位捨去,高位缺位的補原來高位的值,即保證符號位存在

>>>:無符號右移

資料進行右移時,無論原高位是什麼值,高位空位均補0

注意:移n位,就是對乘以或除以2的n次冪

補充例:交換變數a,b的值

方法一:

定義第三方變數c,開發時首選,可讀性強

int c;
c=a;
a=b;
b=c;
方法二:

注意當兩個數過大時,超出int範圍,會發生強制轉換,造成資料丟失

a=a+b;
b=a-b;
a=a-b;
方法三:

進行位運算,可讀性差,往往用於面試

a=a^b;
b=a^b;
a=a^b;
原理:乙個數異或同乙個數兩次,結果還是這個數。

瘋狂java學習筆記二

1.許可權修飾符 public 任何地方 protected 父子類,同包類 預設 不寫 同包類 private 只能本類 2.static 靜態 變成乙份,屬於類,靜態方法不能訪問非靜態變數 類初始化 例項初始化 3.final 不可變 用在類上不可繼承,方法上不可重寫,變數不可被改變 常量4.c...

java基礎 String學習筆記二

string學習筆記 stringbuffer stringbuilder integer 一 stringbuffer和stringbuilder 公升級三個因素 提高效率 簡化書寫 提高安全性 public class stringbufferdemo public static void me...

java多執行緒學習筆記(二)

8 執行緒的狀態 初始狀態 使用new關鍵字建立乙個執行緒,則執行緒就處理初始狀態。就緒狀態 建立執行緒後,需要我們手動呼叫start方法,來開啟執行緒,start方法會新建乙個執行緒並讓這個執行緒執行run方法。有的同學可能不理解,為什麼不直接呼叫run方法,請記住呼叫run來開啟新執行緒,它只會...