天天看點

java 核心技術 讀後總結

總結

1.少用八進制,以及二進制。

那麼就是直接用16進制或10進制嗎?額,想當年有這樣搞過,後面就uuid了。

2.>>>用0填充高位>>用符号位填充高位<<<不存在

冷知識吧,也就當年校招見過人問過

3.java沒有多元數組,隻有一維數組

我們所說的二維數組,本質上是數組的數組

4.編譯多個名字差不多的檔案

如 AbcController和AbcService兩個檔案,javac Abc*.java 即可一次性編譯兩個

5.比較是不是同一個類 用equals而不是instanceof

因為子類instanceof也報true

Objects.equals(a,b);

a instanceof b;           

複制

6.list代替數組

7.這書就是各種帶圖檔小标題,警告注意重點*n的,還不如給個标題号啊。同樣是基礎書,我偏向think in java 。

8.異常處理

一.異常處理不能頂替簡單的測試。就是不要随便利用異常進行業務代碼,其實這個在其他語言裡面很經常在具體的異常裡面進行相應的業務操作。

二.不要過分細分異常。很近的幾個異常可以放到同一個try裡面

錯誤例子
try(){
    a
}catch(){

}

try(){
    b
}catch(){

}
正确例子

try(){
   a
  b
}catch(){

}catch(){

}
           

複制

三.利用異常的層次結構。幾個異常若異常處理一緻,通常是log,可以用父類包含

錯誤例子
try(){
  a
 b
}catch(aException ){

}catch(bException){

}

正确例子,aException bException,是cException的子類
try(){
  a
 b
}catch(cException ){

}           

複制

四。不要壓制異常。不要用太大的異常父類處理,導緻其他的異常都被攔截了,無法具體異常具體處理。

錯誤例子
try(){
  a
 b
}catch(Exception ){

}

正确例子,cException是Exception的子類
try(){
  a
 b
}catch(cException ){

}           

複制

五.檢查錯誤苛待比放任好。就是甯願寫成二的那種正确例子,也不寫成四的正确例子,因為大多數人都是寫成四的錯誤例子。

六.不要羞于處理異常。就是一個程式員素質的問題,沒什麼好說的。

9.斷言,有點想深入了解,但是和think in java 裡面都是說了幾句。看來斷言的實際使用真的很少,而且個人觀感也是if,try,log等就可以代替,并且這三種的使用很頻繁。

10.集合和資料之間的轉換

String[] values = new String[]{"a","b","a"};
        HashSet set = new HashSet(Arrays.asList(values));
        String[] values2 =(String[]) set.toArray();//error 
        String[] values3 = (String[]) set.toArray(new String[0]);           

複制

可以做到簡單去重,這段代碼隻是開了個頭,後續的相信大家都能自己補充。

11.編寫代碼是,若參數是集合,應盡可能使用接口。好處比對的類跟多,不同類型傳進來不需要特意轉。

12.xml,這些的檔案解析java有自帶的功能實作啊,但是考慮到文檔的可讀性,,,我還是選擇第三方的,因為他們的文檔接地氣啊...

13.執行sql語句的防注入,其實就是select * from emp where name = ?和select * from emp where name =maozhedong的差別,這算是一種代碼規範了,我都是預設第一種的