Java 高手之路筆記(1)

(1) 奇偶數判斷:number&1 == 0 來判斷,不要用:number%2 == 0,當number爲負的奇數時候,會失效。

System.out.println((-1) % 2); 這個結果是-1,而不是1。當用number%2 == 1判斷時,容易忽略。


(2)浮點數精確計算,應該使用BigDecimal類來操作:

System.out.println(2.00-1.10); 這個結果是0.8999999,而不是0.9。

System.out.println(new BigDecimal(String.valueOf(2.00)).subtract((new BigDecimal(String.valueOf(1.10)))));結果是0.9;注意在構造對象時,用String作爲參數。


(3)窄數字類型擴展

規則:如果擴展之前的數值類型爲有符號類型(int,byte,short等),執行符號擴展;如果爲無符號類型(char),直接擴展0;

例子1:(int)(char)(byte)-1 = 65535;

(byte)-1 = 1111,1111

(char)(byte)-1 = 1111,1111,1111,1111

(int)(char)(byte)-1 = 0000,0000,0000,0000,1111,1111,1111,1111


例子2:(byte)0x90 == 0x90 ? 答案:不對

(byte)0x90 = 1001,0000

(int)(byte)0x90 = 1111,1111,1111,1111,1111,1111,1001,0000 = -112

(4) 三元表達式:數1 ?數2:數3

規則:

1.如果數2和數3具有相同類型,就是普通條件表達式

2.如果後面選擇的兩個數,一個操作數爲T類型,T爲byte,short或char,而另一個操作數是一個int的字面常量,並且它的值可以用T表示,那條件表達式就是T類型。

3.否則,將會將不同的類型進行類型提升(擴展)。

例子:

char x = 'X';

int i=0;

System.out.println(true?x:0);//X

System.out.println(false?i:x);//88



發佈了62 篇原創文章 · 獲贊 138 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章