阿里內部學習指南《Effective Java中文 第3版》程式設計師進階必備

2020-12-11 用嘴寫代碼

Java從1997年誕生到日趨完善,經過了20多年不斷的發展壯大,已經擁有了近千萬開發人員。如何編寫出更清晰、更正確、更健壯且更易於重用的代碼,是大家所追求的目標。

經典Jolt獲獎作品《Effective Java》的第3版這本書,對上一版內容進行了徹底的更新,介紹了如何充分利用從泛型到枚舉、從註解到自動裝箱的各種特性,幫助讀者更加有效地使用Java程式語言及其基本類庫:java.lang. java.util和java.io,以及子包,如java.util. concurrent和java.util.function等。

本書的作者Joshua .Bloch曾經是Sun公司的傑出工程師和Google公司的首席Java架構師,帶領團隊設計和實現過無數的Java平臺特性,在本書中,他為我們帶來了90條程式設計師必備的經驗法則:針對你每天都會遇到的編程問題提出了最有效、最實用的解決方案

對於Java 平臺精妙之處的獨到見解,並提供優秀的代碼範例。通過閱讀貫穿全書的透徹的技術剖析與完整的示例代碼,認真理解並加以實踐,必定會從中受益匪淺。書中介紹的示例代碼清晰易懂,也可以作為日常工作的參考指南

本書分為12章共90個條目,涵蓋了Java 5.0/6.0/ 7.0/ 8.0/ 9.0的種種技術要點。

小編免費把這本書分享給大家,需要這本書來學習的朋友,請幫忙轉發,關注小編,私信「Java」就能得到這本書的免費領取方式了

第1章 引言

第2章 闡述何時以及如何創建對象,何時以及如何避免創建對象,如何確保它們能夠適時地銷毀,以及如何管理對象銷毀之前必須進行的各種清除動作。

用靜態工廠方法代替構造器遇到多個構造器參數時要考慮使用構建器用私有構造器或者枚舉類型強化Singleton屬性通過私有構造器強化不可實例化的能力優先考慮依賴注人來引用資源避免創建不必要的對象消除過期的對象引用避免使用終結方法和清除方法ty-with-resource優先於try-finally

第3章 闡述對於所有對象都通用的方法,你會從中獲知對equals, hashCode, toString,clone、finalize 以及Comparable .compareTo方法相當深入的分析,從而避免今後在這些問題上再次犯錯。

覆蓋equals時請遵守通用約定覆蓋equals時總要覆蓋hashCode始終要覆蓋toString謹慎地覆蓋clone考慮實現Comparable接口

第4章 闡述作為Java程序設計語言的核心以及Java語言的基本抽象單元(類和接口)在使用上的一些指導原則,幫助你更好地利用這些元素,設計出更加有用、健壯和靈活的類與接口。

使類和成員的可訪問性最小化要在公有類而非公有域中使用訪問方法使可變性最小化複合優先於繼承要麼設計繼承並提供文檔說明,要麼禁止繼承接口優於抽象類為後代設計接口接口只用於定義類型類層次優於標籤類靜態成員類優於非靜態成員類限制源文件為單個頂級類

第5章和第6章中 分別闡述在Java1.5發行版本中新增加的泛型(Generic)以及枚舉( Enum)和註解( Annotation)的最佳實踐,教你如何最大限度地享有這些優勢,並使整個過程儘可能地簡單化。

請不要使用原生態類型消除非受檢的警告列表優於數組優先考慮泛型優先考慮泛型方法利用有限制通配符來提升API的靈活性謹慎並用泛型和可變參數優先考慮類型安全的異構容器

用enum代替int常量用實例域代替序數用EnumSet代替位域用EnumMap代替序數索引用接口模擬可擴展的枚舉註解優先於命名模式堅持使用Override註解用標記接口定義類型

第7章 專門討論在Java 8中新增的函數接口( Functional Interface). Lambda 表達式和方法引用( Method Reference),使創建函數對象( Function Object)變得更加容易。接著探討為處理數據元素的序列提供了類庫級別支持的Stream API,以及如何最佳地利用這些機制。

Lambda優先於匿名類方法引用優先於Lambda堅持使用標準的函數接口謹慎使用Stream優先選擇Stream中無副作用的函數Stream要優先用Collection作為返回類型謹慎使用Stream並行

需要的朋友請幫忙轉發,關注小編,私信「Java」,就能得到本文檔的免費領取方式了哦

第8章 討論方法設計的幾個方面:如何處理參數和返回值,如何設計方法籤名,如何為方法編寫文檔,從而使方法設計在可用性、健壯性和靈活性上有進一步的提升。

檢查參數的有效性必要時進行保護性拷貝謹慎設計方法籤名慎用重載慎用可變參數返回零長度的數組或者集合而不是null謹慎返回optinal為所有導出的API元素編寫文檔注釋

第9章 主要討論Java語言的具體細節,討論了局部變量的處理、控制結構、類庫的使用、各種數據類型的用法,以及兩種不是由語言本身提供的機制(Reflection和NativeMethod,反射機制和本地方法)的用法,並討論了優化和命名慣例。

將局部變量的作用域最小化for-each循環優先於傳統的for循環了解和使用類庫如果需要精確的答案,請避免使用float和double基本類型優先於裝箱基本類型如果其他類型更適合,則儘量避免使用字符串了解字符串連接的性能通過接口引用對象接口優先於反射機制謹慎地使用本地方法謹慎地進行優化遵守普遍接受的命名慣例

第10章 闡述如何充分發揮異常的優點來提高程序的可讀性、可靠性和可維護性,以及減少異常使用不當所帶來的負面影響,並提供了一些關於有效使用異常的指導原則。

只針對異常的情況才使用異常對可恢復的情況使用受檢異常,對編程錯誤使用運行時異常避免不必要地使用受檢異常優先使用標準的異常拋出與抽象對應的異常每個方法拋出的所有異常都要建立文檔在細節消息中包含失敗捕獲信息努力使失敗保持原子性不要忽略異常

第11章 闡述如何幫助你編寫出清晰、正確、文檔組織良好的並發程序,比如如何避免過度同步,優先採用Executor Framework.並發集合(ConcurrentCollection)、同步器(Synch-ronizer),以及是否需要依賴於線程調度器等。

同步訪問共享的可變數據避免過度同步executor、task 和stream優先於線程並發工具優先於wait和線程安全性的文檔化慎用延遲初始化不要依賴於線程調度器

獲取方式

第12章 闡述序列化方面的技術,並且有一項值得特別提及的特性,就是序列化代理( Serialization Proxy)模式,它可以幫助你避免對象序列化的許多缺陷。

其他方法優先於Java序列化謹慎地實現Serializable接口考慮使用自定義的序列化形式保護性地編寫readObject方法對於實例控制,枚舉類型優先於readResolve考慮用序列化代理代替序列化實例

由於篇幅限制,小編只能在這裡給大家展示文章目錄及部分內容,以避免影響大家的閱讀體驗

最後,預祝大家都能進大廠哦!

相關焦點

  • 程式設計師書單,你讀過幾本?
    為了滿足我們好讀書的程式設計師能讀好書的願望,小編不辭勞苦,找了"萬卷"關於java學習的書籍,希望每位猿猿都能讀一讀!1、java學習基礎編程篇Java程序設計語言.(美國)阿諾德.清晰版JAVA2核心技術第1卷.基礎知識7thJAVA.2核心技術.卷II:高級特性7thJava語言程序設計-基礎篇(原書第8版)Java語言程序設計-進階篇(原書第8版)Java核心技術 卷II 高級特性 第9版【全】Java核心技術 卷I 基礎知識 中文版第9版【全】JAVA項目開發案例全程實錄
  • 阿里架構師都在讀的《Effective Java》強在哪?
    本書是經典Jolt獲獎作品《Effective Java》的第3版,對.上一版內容進行了徹底的更新,涵蓋了自2001年第1版之後所引人的JavaSE5和JavaSE6的新特性,以及2008年第2版之後所引人的Java SE 7和Java SE 8以及Java SE 9的新特性。
  • Effective java 中文版 PDF
    這本《Effective java》是必不可少的一本,豆瓣評分高達9.8分,文末有獲取方式。《Effective Java》第三版一共包含了 90 條極具實用價值的經驗規則,每條規則都值得 Java 程式設計師在實戰中去參照。
  • 「核心基礎篇」Guide的Java後端書架來啦!都是Java程式設計師必看的書籍?
    這本書 Guide 第一次看的時候還覺得有點枯燥,那時候還在上大二,看了 1/3 就沒看下去了。希望國內能有更多這樣的優質書籍出現!加油!目前已經出了第二版,我也在不久前買了第二版。這本書我覺是每一個程式設計師都必須要看,並且需要看很多次的!《Effective java 》
  • Java四大名著是什麼?java程式設計師提高技能的經典編程書籍推薦
    學任何語言,基本的語法知識不能少,首推,Java四大名著( java編程思想+Effective java中文版+Java核心技術卷12),下面來具體介紹以下包含Java四大名著在內的java程式設計師類圖書。
  • Java學習必備書籍推薦終極版!
    •《JAVA 網絡編程 第 4 版》[3]:可以系統的學習一下網絡的一些概念以及網絡編程在 Java 中的使用。•《Java 編程思想 (第 4 版)》[4](推薦,豆瓣評分 9.1,3.2K+人評價):大部分人稱之為Java領域的聖經,但我不推薦初學者閱讀,有點勸退的味道。稍微有點基礎後閱讀更好。
  • 3年的java程式設計師,歷經3月7輪面試入職阿里,最後薪資意外
    最近有一名java程式設計師,成功拿到了阿里雲的offer, p6的java開發崗,這本來算是一件可喜可賀的事情,可是這名java程式設計師怎麼也高興不起來,並且還是相當的糾結,這是為什麼呢?一位螞蟻金服的員工:什麼崗位,這個價格對於一個三年的來說確實低了網易員工:七輪面試才19k (應該不是所有人都經歷這麼多輪面試吧,這名java程式設計師的情況,真不清楚是怎麼回事)阿里巴巴員工:別去了,媽的面試這麼難,流程這麼長,最後只給19k (呵呵,我想也是仔細評估過的
  • Java程式設計師進階:Java4大核心基礎必備知識點
    本文總結了零基礎學習Java程式語言的幾個基礎知識要點。希望能夠對剛入門的Java新手有幫助。初學者先弄清這些Java的基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區別與聯繫,分別有哪些應用。想想這些代碼中用到了哪些知識點,不要一味地照著書本敲代碼,而不去理解。
  • 網易有道andorid程式設計師兩輪面試,這些問題你能答上幾個?
    w3cschool在給小夥伴們分享網易有道andorid實習面經前,先跟大家分享一些andorid學習和進階的方法:  0、重視Java基礎  一般大公司對於實習生程式設計師基本功的要求比較高  1、思維方式不受安卓開發局限  安卓程式設計師一般是熟悉安卓API的Java程式設計師。  但是,你一定不能把自己思維局限於安卓開發,一個牛逼的安卓程式設計師還需要學習,服務端、Linux底層、framework層、jvm等。
  • Java之父都需要的《Effective Java中文版(第3版)》到底有多牛
    Effective Java中文版(第3版) 再適合不過了!這是一本分享經驗並指引你少走彎路的經典著作,針對如何編寫高效、設計優良的程序提出了最實用、最權威的指導方針,通過90條經驗法則,探索新的設計模式和語言習慣用法,幫你更加有效地使用Java程式語言及其基本類庫。「我很希望我10年前就能擁有這本書。
  • java入門必備書籍
    下面我給大家推薦幾本java學習的書籍,java自從出現之後就經久不衰,因為它的跨平臺性和開發效率高,被很多公司使用,現在android應用開發也不例外。1.瘋狂Java講義共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和接口。只要你真正想學習Java,你翻開書看上十多分鐘,你絕對會被這本書吸引,介紹操作的部分,非常具體。2.Java2入門經典
  • Java學到什麼程度才能叫精通?
    因為我自己大二系統學習 Java 就是看的這個,我本人覺得全網可能找不到比這個更好或者更系統地能讓你入門並具有實際開發經驗的東西了。在學習的過程中記得實踐!實踐!實踐!另外,看視頻配合書籍的效果更佳!!!下面我會列出一些我個人覺得Java程式設計師必備的書籍。
  • Java程式設計師憑什麼工資那麼高?
    首先,我們看一下有關調查統計的數據:相信大家都能看得出Java程式設計師的在這些行業中的工資待遇確實很高,引起大家羨慕不已,甚至很多人因為它的高收入而去轉行。那為什麼Java程式設計師的工資這麼高?接下來我們詳細分析一下。
  • 一個Java高級工程師的進階之路
    一個Java高級工程師的進階之路想必Java新手們都想知道如何成為一個Java高級工程師,小編整理了一下Java高級工程師必須具備的一些專業技能供大家參考,希望可以幫到大家!宏觀方面JAVA要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程式設計師或許只需知道一些JAVA的語法結構就可以應付了。
  • 阿里螞蟻金服Java程式設計師面試的11個問題,你會幾個呢?
    此前,w3cschool app開發者頭條上分享了各種的名企程式設計師面經。比如阿里巴巴java面經、小米java面經、網易java面經等,吸引了大多數的程式設計師們的圍觀。在分享螞蟻金服Java程式設計師面經前,不妨來看下Java程式設計師面試時要注意3大要點:0、重視基礎在面試之前,有必要將基礎的知識點重新過一遍,比如並發優缺點、內存可見性、鎖、同步、線程池框架等。
  • 推薦必備編程書單
    Redis 3.0 代碼PostgreSQLPostgreSQL 8.2.3 中文文檔PostgreSQL 9.3.1 中文文檔Web3 Web Designs in 3 WeeksChrome 開發者工具中文手冊Chrome擴展開發文檔Growth:
  • 九年程式設計師推薦java書籍
    版9.31623Head First 設計模式(中文版)9.230434Java 8實戰9.24295Java編程思想 (第4版)9.137376Effective java 中文版(第2版)9.116387Spring揭秘9.13108深入理解Java虛擬機(第2版) : JVM高級特性與最佳實踐91635
  • Java進階適合看哪些書?
    小編認為,有一定基礎,處在進階階段的Java程式設計師,有條件也應該擁有自學的條件和能力。除了看視頻,看書也是一個極好的自學方法。
  • 如何學習Java,哪裡開始學Java比較好?
    如何學習Java?哪裡開始學Java比較好?當然是從基礎開始學習咯,學習需要循序漸進  新手前期主要是安裝開發工具,基本入手步驟:  開發環境搭建,安裝JDK  安裝開發工具 - eclipse  買書籍或者看電子書:學習Java有哪些值得推薦的Java書籍?
  • 阿里內部員工,排查Java問題常用的工具單
    utm_content=m_10360這是一篇來源於阿里內部技術論壇的文章,原文在阿里內部獲得一致好評。作者已經把這篇文章開放到雲棲社區中供外網訪問。文章內容做了部分刪減,主要刪減掉了其中只有阿里內部才能使用的工具的介紹,並刪減掉部分只有通過阿里內網才能訪問到的連結。