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

来源:https://www.cnblogs.com/VioletLove/archive/2018/06/05/9142629.html
-Advertisement-
Play Games

前言 從去年的3月份起我就在開始讀《Effective Java 第二版》,當然,我讀的是中文版的;可能是我理解能力還不行,對於書中的內容總是感覺理解困難;就拿第一章的內容「創建和銷毀對象」來說吧,這是我讀的次數最多的一章,想必原因大家也是明白的,每次我讀不下去的時候,我就從頭開始讀,所以,現在我對 ...


前言

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

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

第三版新條目

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

大家可以先看下下麵這張圖,有個整體的概念。
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》

參考資料


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 重載: 如果多個方法(包含構造方法)有相同的名字、不同的參數,便產生重載。編譯器必須挑選出具體執行哪個方法,它通過用各個方法給出的參數類型與特定方法調用所使用的值類型進行匹配挑選出相對應的方法。 如果編譯器找不到匹配的參數,就會產生編譯時錯誤。(此過程稱為重載解析) 註意:方法的返回類型並不屬於重載 ...
  • 1 關鍵字 1.1 關鍵字概述 被Java語言賦予特定含義的單詞。 1.2 關鍵字特點 組成關鍵字的字母全部小寫。 1.3 關鍵字的註意事項 goto和const作為保留字存在,目前並不適用。 2 標識符 2.1 標識符概述 給類、介面、方法或變數等起名字適用的字元序列。 2.2 標識符的組成規則 ...
  • Java開源生鮮電商平臺-一次代碼重構的實戰案例(源碼可下載) 說明,Java開源生鮮電商平臺-一次代碼重構的實戰案例,根據實際的例子,分析出重構與抽象,使代碼更加的健壯與高效。 1.業務說明 系統原先已有登錄功能,我們打算增加一個登錄IP和允許登錄時間的安全限制業務。 IP 分為內網ip、外網ip ...
  • 分頁對於大多數網站來說是必不可少的,那你使用restful架構時候,你可以從後臺獲取數據,在前端利用利用框架或自定義分頁,這是一種解決方案。當然django rest framework提供了分頁組件,讓我們可以更靈活的進行分頁。 django rest framework提供了三種分頁組件: Pa ...
  • 本文通過一個簡易安全認證示例的開發實踐,理解過濾器和攔截器的工作原理。 很多文章都將過濾器(Filter)、攔截器(Interceptor)和監聽器(Listener)這三者和Spring關聯起來講解,並認為過濾器(Filter)、攔截器(Interceptor)和監聽器(Listener)是Spr ...
  • 閱讀本文約“2分鐘” 熟悉Java的朋友都知道虛擬機還有編譯器,那麼它們各自主要的功能是什麼?誰比較重要呢?讓我們來瞭解一下這兩位美女的故事。 虛擬機可以說就是Java,她能讓程式運行起來。 但是編譯器卻能產生文件,畢竟java是直譯語言,如果需要一邊運行一邊解譯純文字是不能運行得快速的,而我們程式 ...
  • 5.1.cms後臺修改密碼功能完成 (1)新建app/forms.py (2)cms/forms.py (3)cms/views.py (4)新建static/common/zlajax,js (5)cms/js/resetpwd.js (6)cms/cmc_base.html (7)cms/cms ...
  • 一、動態代理 1.1、代理模式 什麼是代理模式及其作用? Proxy Pattern(即:代理模式),23種常用的面向對象軟體的設計模式之一。 代理模式的定義:為其他對象提供一種代理以控制對這個對象的訪問。 在某些情況下,一個對象不適合或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...