最近正在複習java核心卷Ⅰ,因而乎寫寫一些我認爲應該記住的知識點。隨便寫寫。。java
第三章
- 從 Java 7 開始, 加上前綴 0b 或 0B 就能夠寫二進制數。例如,Ob1001就是9。另外,一樣是從 Java 7 開始,還能夠爲數字字面量加下劃線,如用 1_000_000表示一百萬。這些下劃線只是爲了讓人更易讀。Java 編譯器會去除這些下劃線。
- byte 和 short 類型主要用於特定的應用場合,例如,底層的文件處理或者須要控制佔用存儲空間量的大數組.
- 只有不多的狀況適合使用 float 類型,例如,須要單精度數據的庫, 或者須要存儲大量數據。
- 正整數除以 0 的結果爲正無窮大。計算 0/0 或者負數的平方根結果爲 NaN。
- 不能這樣檢測一個特定值是否等於 Double.NaN:
if (x = Double.NaN)// is never true
由於全部「 非數值」 的值都認爲是不相同的。然而,可使用 Double.isNaN 方法:if (Double.isNaN(x)) // check whether x is "not a number
- 浮點數值不適用於沒法接受舍入偏差的金融計算中。 例如,命令 System.out.println( 2.0-1.1 ) 將打印出 0.8999999999999999, 而不是人們想象的 0.9。這種舍入偏差的主要緣由是浮點數值採用二進制系統表示, 而在二進制系統中沒法精確地表示分數 1/10。這就好像十進制沒法精確地表示分數 1/3—樣。若是在數值計算中不容許有任何舍入偏差,就應該使用 BigDecimal類
- 關鍵字 final 表示這個變量只能被賦值一次。一旦被賦值以後,就不可以再更改了。習慣上,常量名使用全大寫
- 在Java中,常常但願某個常量能夠在一個類中的多個方法中使用,一般將這些常量稱爲類常量。可使用關鍵字 static final設置一個類常量。須要注意,類常量的定義位於 main 方法的外部。所以,在同一個類的其餘方法中也可使用這個常量。並且,若是一個常量被聲明爲 public,那麼其餘類的方法也可使用這個常量
- 須要注意,整數被 0 除將會產生一個異常,而浮點數被 0 除將會獲得無窮大或 NaN 結果
- 在 Math 類中,爲了達到最快的性能,全部的方法都使用計算機浮點單元中的例程. 若是獲得一個徹底可預測的結果比運行速度更重要的話,那麼就應該使用 StrictMath類, 它使用「自由發佈的 Math 庫」(fdlibm) 實現算法,以確保在全部平臺上獲得相同的結果
-
在圖中有 6 個實心箭頭,表示無信息丟失的轉換;有 3 個虛箭頭, 表示可能有精度損失的轉換。
-
double x = 9.997;int nx = (int) Math.round(x);
如今,變量 nx 的值爲 10。當調用 round 的時候,仍然須要使用強制類型轉換(int) 其緣由是 round 方法返回的結果爲 long 類型,因爲存在信息丟失的可能性,因此只有使用顯式的強制類型轉換纔可以將 long 類型轉換成 int 類型。若是試圖將一個數值從一種類型強制轉換爲另外一種類型,而又超出了目標類型的表示範圍,結果就會截斷成一個徹底不一樣的值。例如,(byte) 300 的實際值爲 44。
- 若是須要把多個字符串放在一塊兒,用一個定界符分隔,可使用靜態 join 方法:
String all = String.join(" / ", "S", "M","L", "XL");// all is the string "S / M / L / XL
- 每次鏈接字符串, 都會構建一個新的 String 對象,既耗時, 又浪費空間。使用 StringBuildel類就能夠避免這個問題的發生。

- 若是但願將一個數組的全部值拷貝到一個新的數組中去,就要使用 Arrays 類的 copyOf方法:int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers , luckyNumbers .length);第 2 個參數是新數組的長度。這個方法一般用來增長數組的大小:
- 要想對數值型數組進行排序, 可使用 Arrays 類中的 sort 方法,這個方法使用了優化的快速排序算法。快速排序算法對於大多數數據集合來講都是效率比較高的
- 要想快速地打印一個二維數組的數據元素列表,能夠調用Arrays.deepToString(a);輸出格式爲:[[16, B, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]]