Effective Java 第三版 全文翻譯

effective-java-third-edition

介紹

Effective Java 第三版全文翻譯,純屬我的業餘翻譯,不合理的地方,望指正,感激涕零!java

目錄

推薦序

前言

致謝


第一章 引言


第二章 建立和銷燬對象

  本章涉及建立和銷燬對象,包括什麼時候以及如何建立它們,什麼時候以及如何避免建立它們,如何確保它們被及時銷燬,以及如何管理在銷燬以前必須進行的清理操做。git


第三章 對於全部對象都通用的方法

  儘管Object是一個具體類,可是設計它主要是爲了擴展。它全部的非final方法(equals、hashCode、toString、clone和finalize)都有明確的通用約定(general contracts),由於它們被設計成是要被重寫(override)的。任何一個類,它在覆蓋這些方法的時候,都有責任遵照這些通用約定;若是作不到這一點,其餘依賴於這些約定的類(例如HashMap和HashSet)就沒法結合該類一塊兒正常運做。編程

  本章將講述什麼時候以及如何覆蓋這些非final的Object方法。本章再也不討論finalize方法,由於第7項已經討論過這個方法了。而Comparable.compareTo雖然不是Object方法,可是本章也對它進行討論,由於它具備相似的特徵。數組


第四章 類和接口

  類和接口是Java程序設計語言的何鑫,他們也是Java語言的基本抽象單元。Java語言提供了許多強大的基本元素,供程序猿來設計類和接口。本章包含的一些指南能夠幫助你充分利用這些元素,以便讓你編寫的類和接口可用、健壯且靈活。安全


第五章 泛型

  Java 1.5發行版本中增長了泛型(Generic)。在沒有泛型以前,從集合中讀取到的每個對象都必須進行轉換。若是有人不當心插入了類型錯誤的對象,在運行時的轉換處理就會出錯。有個泛型,能夠告訴編譯器每一個集合中接收哪些對象類型。編譯器自動地爲你的插入進行轉化,並在編譯時告知是否插入了類型錯誤的對象。這樣可使程序既更加安全,也更加清楚,可是這些好處(不只僅針對集合)是須要付出代價的。本章將告訴您如何最大化利益並最大限度地減小併發症【使用泛型帶來的壞處】(complications)。微信


第六章 枚舉和註解

  Java支持兩種特殊用途的引用類型:一種成爲枚舉(enum type)類型,以及一種稱爲註解類型(annotation type)的接口。本章討論使用這些類型系列的最佳實踐。併發


第七章 Lambda和Stream

  在Java 8中,添加了函數接口,lambda和方法引用,以便更容易地建立函數對象。在這些語法(language)更改的同時添加進了流API,以便爲處理數據元素序列提供庫支持。在本章中,咱們將討論如何充分利用這些工具。框架


第八章 方法

  本章討論了方法設計的幾個方面:如何處理參數和返回值,如何設計方法簽名以及如何爲方法編寫文檔。本章中的大部份內容適用於構造函數和方法。 與第4章同樣,本章重點介紹可用性,健壯性和靈活性。ide


第九章 通用編程

  本章主要討論Java語言的具體細節,討論了局部變量、控制結構、類庫、數據類型,以及兩種不是由語言自己提供的機制(reflection和native method,反射機制和本地方法)。最後討論了優化和命名慣例。函數


第十章 異常

  在最一般狀況下,異常能夠提升程序的可讀性,可靠性和可維護性。若是使用不當,可能會產生相反的效果。本章提供有效使用異常的指南。


第十一章 併發

  線程(RHREADS)機制容許同時進行多個活動。併發編程要比單線程編程要困可貴多,由於有不少東西可能出錯,也很難重現失敗。你沒法避免併發。它原本就存在Java平臺中了,若是你要從多核處理器中得到更好的性能,併發也是一個必要條件,這些如今都是十分廣泛的了。本章闡述的建議能夠幫助你編寫出清晰、正確、文檔組織良好的併發程序。


第十二章 序列化

  本章關注對象序列化(object serialization) ,它是一個Java的框架,用來將對象編碼爲字節流(序列化(serializing)),並從其編碼中重構對象(反序列化(deserializing))。一旦對象被序列化,其編碼能夠從一個VM發送到另外一個VM或存儲在磁盤上以便之後反序列化。本章重點介紹序列化的危險以及如何將序列化最小化。


附錄 與第2版中項目的對應關係

參考文獻

我的微信公衆號,歡迎關注哈!

相關文章
相關標籤/搜索