前言 從去年的3月份起我就在開始讀《Effective Java 第二版》,當然,我讀的是中文版的;可能是我理解能力還不行,對於書中的內容總是感覺理解困難;就拿第一章的內容「創建和銷毀對象」來說吧,這是我讀的次數最多的一章,想必原因大家也是明白的,每次我讀不下去的時候,我就從頭開始讀,所以,現在我對 ...
前言
從去年的3月份起我就在開始讀《Effective Java 第二版》,當然,我讀的是中文版的;可能是我理解能力還不行,對於書中的內容總是感覺理解困難;就拿第一章的內容「創建和銷毀對象」來說吧,這是我讀的次數最多的一章,想必原因大家也是明白的,每次我讀不下去的時候,我就從頭開始讀,所以,現在我對這本書的第一章是最為熟悉的了。後來,有一次我上網看到有網友說這本書確實和絕大部分的翻譯書籍一樣,對於有些原文中的內容翻譯的不是很流暢,所以會導致閱讀的人感覺難以理解;於是,我就斗膽下了本英文的原版來對照著來看,發現確實這樣理解起來就更容易了,所以最後花了一兩個月的時間就把整本書給啃完了(好吧,真實的情況是,這段時間我參與了幾個項目,編程經驗也因此積累了不少,所以對於《Effective Java》這本書里推薦的「最佳實踐」有了一點點的思考與理解。)
其實,到目前為止,我還是會時不時地拿起這本書來翻看,每次讀都感覺與上一次不一樣,這也許就是「溫故知新」的意思吧。
第三版新條目
上面的絮絮叨叨大家可以不用關心,現在我就來介紹下第三版中加入的一些新的條目。
大家可以先看下下麵這張圖,有個整體的概念。
因為,《Effective Java 第二版》的原版是2008年出版的,至今(2018)年已經有十年了,Java 語言在這十年裡也發展的比較迅速,對於第二版中提及的「最佳實踐」有些已經不是特別推薦了,幸好作者 Joshua Bloch 大叔重操舊筆為我們這群麻瓜帶來了最新的條目,同時也更新了原有的條目。
這本書的原版是去年完稿的(2017年12月18號),作者正好補充了 Java 7、Java 8 和 Java 9 的一些「最佳實踐」。另外,想必關註 Java 發展的麻瓜們已經瞭解到了 Java 之後的發版規則改了,「Java版本發佈周期變更為每六個月一次」。是不是一下子覺得有點緊張了啊,其實也沒什麼好擔心的,新特性的快速添加,對我們也是好事,可以減少一些低效的操作,使用新特性來解放生產力。
Java 7 新特性
- try-with-resources | 一種新的資源關閉處理方式
- @SafeVarargs | 忽略任何使用參數為泛型變數的方法或構造函數調用產生的警告
Java 8 新特性
- Lambdas | 引入函數式編程
- Streams | 流式數據處理
- Optionals | 參考Google的Guava類庫實現的,用來解決空指針異常(NullPointerException,NPE)問題
- Default methods in interfaces | 介面中可以有預設實現方法了
Java 9 新特性
- Modules | 將 JDK 源代碼重新組織為模塊,對構建系統進行增強以使之支持對模塊的編譯,併在構建時強制對模塊邊界的應用
總結
這就是《Effective Java 第三版》新添加的條目,這篇文章只是大概的展示下新添加的條目,具體的內容還是需要讀者去閱讀書籍去瞭解,本人目前也在閱讀當中,後續有什麼閱讀感悟會及時與諸君分享的。那麼,重要的問題來了,如何去獲取這本書籍的,因為中文翻譯版本還沒有那麼快,如果,你對你的英文還感到有點自信,可以試試閱讀原版。這裡我就造福下你們了。下載地址:《Effective Java 第三版原版pdf》