Java-核心技術總結-第3章

1.Java對大小寫敏感。

2.命名規範,類名大寫開頭。

3.Java SE 1.4 以後,main方法強制爲public。

4.塊{ }. 控制着{ }內的變量作用域。即使是static也不能作用到{ }外。

5.長整形long的數,以L結尾。long l = 123L;

6.java 7 開始,前綴0b表示2進制數。

7.java 沒有任何無符號類型。

8.浮點數默認類型爲double,若定義float類型,float f = 0.112F; 

9.因爲java 浮點數採用2進制系統表示,所以不能精確的表示0.1. (就是2進制情況下,不能整除2)。精度要求高的時候,用BigDecimal類型。

10.char類型儘量不同。明白代碼點,代碼單元的區別聯繫。 

正常的字符1個代碼單元就夠了,有些填充的字符需要1個代碼單元表示。也就是說,一個代碼點對應一個字符,但是有可能對應1個或者2個代碼單元。

11.整數值個布爾值之間不能相互轉換。

12.變量的聲明儘量靠近第一次使用的地方。聲明後必須進行顯式初始化。類的域在new的過程中,被初始化。這是和局部變量不一樣的。

13.變量逐一聲明可以提高程序的可讀性。

14.建議不要在表達式的內部使用++,這樣編寫的代碼容易使人困惑,並會產生煩人的bug。

15.&& 和 || 是按照短路方式求值的。 &和|位運算符。也可以用於布爾值,得到的結果也是布爾值。但是兩邊的表達式都要運算,不做短路處理。

16.>>,>>>和<<移位運算符。

>>>將0填充高位。>>將符號位填充高位。<<用0填充。

17.C/C++裏的>>移位不能確定是算數移位還是邏輯移位。Java區分這兩個。

18.移位的時候要進行模32的運算。int i=1423; i<<33;和i<<1 是等效的。如果是long類型,則要進行模64的運算。

19. 三元操作符?:,右結合性。false?true:false?true:false; 和false?true:(false?true:false;)是一樣的。

20.數值類型之間的數據轉換,1.自動類型轉換,原則就是向高精度,高字長轉換。

2.強制類型轉換,向下轉,會損失精度。必須顯式的進行轉換。

21.不要在布爾類型和任任何數值類型之間進行強制轉換。非要轉的話,用? : 來處理。

22.Java 不使用逗號運算符。、

23.substring(0,3)方法的第二個參數是不想複製的第一位,就是複製0-2,不包括3.

24.格式化輸出System.out.printf("%d", a1);//和C/C++ 類似。

25.Java不能在嵌套的兩個塊中聲明同名的變量。

int l;
{
int l;
}

但是C++可以,內層定義的變量會覆蓋外層定義的變量。

26.Java的break可以帶標籤。表示跳出哪層循環的意思。

27. 當基本的整數和浮點數精度不能滿足要求時,使用BigInteger和BigDecimal。不能重載運算符,只能用add之類的方法。此外,BigIntegar b= new BigIntegal("111");a.add(BigIntegal.valueof(1000));不會改變a的值,除非直接賦值

a=a.add(BigIntegal.valueof(1000));

28.數組屬於對象數據類型。創建數組時,數據元素會被自動初始化。

29.foreach循環。加強for循環。一次處理數組中的每個元素。for(varable :collection)statement

30. Arrays.tostring可以打印數組中的所有值。 // java.util.Arrays Arrays是一個工具類

31.Arrays.copyOf(,)。數組拷貝到獨立的新的數組。第二個參數是新的數組的長度。類似於類對象的clone。

32.Arrays.sort()可以對數組進行排序,按字典順序。算法是優化的快速排序算法。

33.Java實際上並沒有對維數組,只有一位數組。多維解釋成一維。實際上是單獨存儲每一行,所以可以讓兩行交換。因此很方便的構造一個不規則的數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章