国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Effective Java 第三版 全文翻譯

galois / 2782人閱讀

摘要:本章中的大部分內容適用于構造函數和方法。第項其他方法優先于序列化第項謹慎地實現接口第項考慮使用自定義的序列化形式第項保護性地編寫方法第項對于實例控制,枚舉類型優先于第項考慮用序列化代理代替序列化實例附錄與第版中項目的對應關系參考文獻

effective-java-third-edition 介紹

Effective Java 第三版全文翻譯,純屬個人業余翻譯,不合理的地方,望指正,感激不盡!

目錄 推薦序 前言 致謝 第一章 引言 第二章 創建和銷毀對象

??本章涉及創建和銷毀對象,包括何時以及如何創建它們,何時以及如何避免創建它們,如何確保它們被及時銷毀,以及如何管理在銷毀之前必須進行的清理操作。

第1項:考慮靜態工廠方法而不是構造函數

第2項:當面臨多個參數的構造器時考慮使用構建器

第3項:用私有構造器或者枚舉類型強化Singleton屬性

第4項:通過私有構造器強化不可實例化的能力

第5項:優先考慮依賴注入來引用資源

第6項:避免創建不必要的對象

第7項:消除過期的對象引用

第8項:避免使用終結方法和清除方法

第9項:try-with-resources優先于try-finally

第三章 對于所有對象都通用的方法

??盡管Object是一個具體類,但是設計它主要是為了擴展。它所有的非final方法(equals、hashCode、toString、clone和finalize)都有明確的通用約定(general contracts),因為它們被設計成是要被重寫(override)的。任何一個類,它在覆蓋這些方法的時候,都有責任遵守這些通用約定;如果做不到這一點,其他依賴于這些約定的類(例如HashMap和HashSet)就無法結合該類一起正常運作。

??本章將講述何時以及如何覆蓋這些非final的Object方法。本章不再討論finalize方法,因為第7項已經討論過這個方法了。而Comparable.compareTo雖然不是Object方法,但是本章也對它進行討論,因為它具有類似的特征。

第10項:覆蓋equals時請遵守通用約定

第11項:當重寫equals方法時總要重寫hashCode方法

第12項:始終重寫toString方法

第13項:謹慎地重寫clone方法

第14項:考慮實現Comparable接口

第四章 類和接口

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

第15項:使類和成員的可訪問性最小化

第16項:要在公有類而非公有域中使用訪問方法

第17項:使可變性最小化

第18項:復合優先于繼承

第19項:要么設計繼承并提供文檔說明,要么禁止繼承

第20項:接口優于抽象類

第21項:為后代設計接口

第22項:接口只用于定義類型

第23項:類層次優于標簽類

第24項:靜態成員類優于非靜態成員類

第25項:限制源文件為單個頂級類

第五章 泛型

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

第26項:請不要使用原生態類型

第27項:消除非受檢的警告

第28項:列表優于數組

第29項:優先考慮泛型

第30項:優先考慮泛型方法

第31項:利用有限制通配符來提升API的靈活性

第32項:謹慎并用泛型和可變參數

第33項:優先考慮類型安全的異構容器

第六章 枚舉和注解

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

第34項:用enum代替int常量

第35項:用實例域代替序數

第36項:用EnumSet代替位域

第37項:用EnumMap代替序數索引

第38項:用接口模擬可擴展的枚舉

第39項:注解優先于命名模式

第40項:堅持使用Override注解

第41項:用標記接口定義類型

第七章 Lambda和Stream

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

第42項:Lambda優先于匿名類

第43項:方法引用優先于Lambda

第44項:堅持使用標準的函數接口

第45項:謹慎使用Stream

第46項:優先選擇Stream中無副作用的函數

第47項:Stream要優先用Collection作為返回類型

第48項:謹慎使用Stream并行

第八章 方法

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

第49項:檢查參數的有效性

第50項:必要時進行保護性拷貝

第51項:謹慎設計方法簽名

第52項:慎用重載

第53項:慎用可變參數

第54項:返回零長度的數組或者集合,而不是null

第55項:謹慎返回optinal

第56項:為所有導出的API元素編寫文檔注釋

第九章 通用編程

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

第57項:將局部變量的作用域最小化

第58項:for-each循環優先于傳統的for循環

第59項:了解和使用類庫

第60項:如果需要精確的答案,請避免使用float和double

第61項:基本類型優先于裝箱基本類型

第62項:如果其他類型更適合,則盡量避免使用字符串

第63項:了解字符串連接的性能

第64項:通過接口引用對象

第65項:接口優先于反射機制

第66項:謹慎地使用本地方法

第67項:謹慎地進行優化

第68項:遵守普遍接受的命名慣例

第十章 異常

??在最通常情況下,異常可以提高程序的可讀性,可靠性和可維護性。如果使用不當,可能會產生相反的效果。本章提供有效使用異常的指南。

第69項:只針對異常的情況才使用異常

第70項:對可恢復的情況使用受檢異常,對編程錯誤使用運行時異常

第71項:避免不必要地使用受檢異常

第72項:優先使用標準的異常

第73項:拋出與抽象對應的異常

第74項:每個方法拋出的所有異常都要建立文檔

第75項:在細節消息中包含失敗-捕獲信息

第76項:努力使失敗保持原子性

第77項:不要忽略異常

第十一章 并發

??線程(RHREADS)機制允許同時進行多個活動。并發編程要比單線程編程要困難得多,因為有很多東西可能出錯,也很難重現失敗。你無法避免并發。它本來就存在Java平臺中了,如果你要從多核處理器中獲得更好的性能,并發也是一個必要條件,這些現在都是十分普遍的了。本章闡述的建議可以幫助你編寫出清晰、正確、文檔組織良好的并發程序。

第78項:同步訪問共享的可變數據

第79項:避免過度同步

第80項:executor、task和stream優先于線程

第81項:并發工具優先于wait和notify

第82項:線程安全性的文檔化

第83項:慎用延遲初始化

第84項:不要依賴于線程調度器

第十二章 序列化

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

第85項:其他方法優先于Java序列化

第86項:謹慎地實現Serializable接口

第87項:考慮使用自定義的序列化形式

第88項:保護性地編寫readObject方法

第89項:對于實例控制,枚舉類型優先于readResolve

第90項:考慮用序列化代理代替序列化實例

附錄 與第2版中項目的對應關系 參考文獻

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74634.html

相關文章

  • Java 高效編程(Effective Java)中文三版

    摘要:來源前條來源一書英文版已經出版,這本書的第二版想必很多人都讀過,號稱四大名著之一,不過第二版年出版,到現在已經將近年的時間,但隨著,,,甚至的發布,語言發生了深刻的變化。譯者在這里第一時間翻譯成中文版。供大家學習分享之用。 來源:sjsdfg/effective-java-3rd-chinese前 51 條來源:Effective Java, Third Edition 《Effec...

    ysl_unh 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    fxp 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    Tecode 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    VPointer 評論0 收藏0
  • 那些年,我的前端/Java后端書單

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學習即將閱讀的一些優秀經典前端后端書籍。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學習、即將閱讀)的一些優秀經典前端/Java后端書籍。全文為純原創,且將持續更新,未經許可,不得進行轉載。當然,如果您喜歡這篇文章,可以動手點點贊或者收藏。 基礎 基礎書籍 進階 進階階段,深入學習的書...

    idealcn 評論0 收藏0

發表評論

0條評論

galois

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<