天天看點

《Effective Java 第三版》新條目介紹

前言

從去年的3月份起我就在開始讀《Effective Java 第二版》,當然,我讀的是中文版的;可能是我了解能力還不行,對于書中的内容總是感覺了解困難;就拿第一章的内容「建立和銷毀對象」來說吧,這是我讀的次數最多的一章,想必原因大家也是明白的,每次我讀不下去的時候,我就從頭開始讀,是以,現在我對這本書的第一章是最為熟悉的了。後來,有一次我上網看到有網友說這本書确實和絕大部分的翻譯書籍一樣,對于有些原文中的内容翻譯的不是很流暢,是以會導緻閱讀的人感覺難以了解;于是,我就鬥膽下了本英文的原版來對照着來看,發現确實這樣了解起來就更容易了,是以最後花了一兩個月的時間就把整本書給啃完了(好吧,真實的情況是,這段時間我參與了幾個項目,程式設計經驗也是以積累了不少,是以對于《Effective Java》這本書裡推薦的「最佳實踐」有了一點點的思考與了解。)

其實,到目前為止,我還是會時不時地拿起這本書來翻看,每次讀都感覺與上一次不一樣,這也許就是「溫故知新」的意思吧。

第三版新條目

上面的絮絮叨叨大家可以不用關心,現在我就來介紹下第三版中加入的一些新的條目。

大家可以先看下下面這張圖,有個整體的概念。

Java新特性對照表

因為,《Effective Java 第二版》的原版是2008年出版的,至今(2018年)已經有十年了,Java 語言在這十年裡也發展的比較迅速,對于第二版中提及的「最佳實踐」有些已經不是特别推薦了 ,幸好作者 Joshua Bloch 大叔重操舊筆為我們這群麻瓜帶來了最新的條目,同時也更新了原有的條目(看到有讀者評論,讓我指出在第二版中有哪些條目在第三版做更新了,這個實在有點慚愧,第三版還沒啃完。立flag了,啃完之後,再更新。)

這本書的原版是去年完稿的(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 第三版》新添加的條目,這篇文章隻是大概的展示下新添加的條目,具體的内容還是需要讀者去閱讀書籍去了解,本人目前也在閱讀當中,後續有什麼閱讀感悟會及時與諸君分享的。那麼,重要的問題來了,如何去擷取這本書籍的,因為中文翻譯版本還沒有那麼快,如果,你對你的英文還感到有點自信,可以試試閱讀原版。 

作者:crane.yuan