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

資訊專欄INFORMATION COLUMN

Effective Java 第三版 全文翻譯

galois / 2776人閱讀

摘要:本章中的大部分內(nèi)容適用于構(gòu)造函數(shù)和方法。第項(xiàng)其他方法優(yōu)先于序列化第項(xiàng)謹(jǐn)慎地實(shí)現(xiàn)接口第項(xiàng)考慮使用自定義的序列化形式第項(xiàng)保護(hù)性地編寫方法第項(xiàng)對于實(shí)例控制,枚舉類型優(yōu)先于第項(xiàng)考慮用序列化代理代替序列化實(shí)例附錄與第版中項(xiàng)目的對應(yīng)關(guān)系參考文獻(xiàn)

effective-java-third-edition 介紹

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

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

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

第1項(xiàng):考慮靜態(tài)工廠方法而不是構(gòu)造函數(shù)

第2項(xiàng):當(dāng)面臨多個(gè)參數(shù)的構(gòu)造器時(shí)考慮使用構(gòu)建器

第3項(xiàng):用私有構(gòu)造器或者枚舉類型強(qiáng)化Singleton屬性

第4項(xiàng):通過私有構(gòu)造器強(qiáng)化不可實(shí)例化的能力

第5項(xiàng):優(yōu)先考慮依賴注入來引用資源

第6項(xiàng):避免創(chuàng)建不必要的對象

第7項(xiàng):消除過期的對象引用

第8項(xiàng):避免使用終結(jié)方法和清除方法

第9項(xiàng):try-with-resources優(yōu)先于try-finally

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

??盡管Object是一個(gè)具體類,但是設(shè)計(jì)它主要是為了擴(kuò)展。它所有的非final方法(equals、hashCode、toString、clone和finalize)都有明確的通用約定(general contracts),因?yàn)樗鼈儽辉O(shè)計(jì)成是要被重寫(override)的。任何一個(gè)類,它在覆蓋這些方法的時(shí)候,都有責(zé)任遵守這些通用約定;如果做不到這一點(diǎn),其他依賴于這些約定的類(例如HashMap和HashSet)就無法結(jié)合該類一起正常運(yùn)作。

??本章將講述何時(shí)以及如何覆蓋這些非final的Object方法。本章不再討論finalize方法,因?yàn)榈?項(xiàng)已經(jīng)討論過這個(gè)方法了。而Comparable.compareTo雖然不是Object方法,但是本章也對它進(jìn)行討論,因?yàn)樗哂蓄愃频奶卣鳌?/p>

第10項(xiàng):覆蓋equals時(shí)請遵守通用約定

第11項(xiàng):當(dāng)重寫equals方法時(shí)總要重寫hashCode方法

第12項(xiàng):始終重寫toString方法

第13項(xiàng):謹(jǐn)慎地重寫clone方法

第14項(xiàng):考慮實(shí)現(xiàn)Comparable接口

第四章 類和接口

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

第15項(xiàng):使類和成員的可訪問性最小化

第16項(xiàng):要在公有類而非公有域中使用訪問方法

第17項(xiàng):使可變性最小化

第18項(xiàng):復(fù)合優(yōu)先于繼承

第19項(xiàng):要么設(shè)計(jì)繼承并提供文檔說明,要么禁止繼承

第20項(xiàng):接口優(yōu)于抽象類

第21項(xiàng):為后代設(shè)計(jì)接口

第22項(xiàng):接口只用于定義類型

第23項(xiàng):類層次優(yōu)于標(biāo)簽類

第24項(xiàng):靜態(tài)成員類優(yōu)于非靜態(tài)成員類

第25項(xiàng):限制源文件為單個(gè)頂級(jí)類

第五章 泛型

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

第26項(xiàng):請不要使用原生態(tài)類型

第27項(xiàng):消除非受檢的警告

第28項(xiàng):列表優(yōu)于數(shù)組

第29項(xiàng):優(yōu)先考慮泛型

第30項(xiàng):優(yōu)先考慮泛型方法

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

第32項(xiàng):謹(jǐn)慎并用泛型和可變參數(shù)

第33項(xiàng):優(yōu)先考慮類型安全的異構(gòu)容器

第六章 枚舉和注解

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

第34項(xiàng):用enum代替int常量

第35項(xiàng):用實(shí)例域代替序數(shù)

第36項(xiàng):用EnumSet代替位域

第37項(xiàng):用EnumMap代替序數(shù)索引

第38項(xiàng):用接口模擬可擴(kuò)展的枚舉

第39項(xiàng):注解優(yōu)先于命名模式

第40項(xiàng):堅(jiān)持使用Override注解

第41項(xiàng):用標(biāo)記接口定義類型

第七章 Lambda和Stream

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

第42項(xiàng):Lambda優(yōu)先于匿名類

第43項(xiàng):方法引用優(yōu)先于Lambda

第44項(xiàng):堅(jiān)持使用標(biāo)準(zhǔn)的函數(shù)接口

第45項(xiàng):謹(jǐn)慎使用Stream

第46項(xiàng):優(yōu)先選擇Stream中無副作用的函數(shù)

第47項(xiàng):Stream要優(yōu)先用Collection作為返回類型

第48項(xiàng):謹(jǐn)慎使用Stream并行

第八章 方法

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

第49項(xiàng):檢查參數(shù)的有效性

第50項(xiàng):必要時(shí)進(jìn)行保護(hù)性拷貝

第51項(xiàng):謹(jǐn)慎設(shè)計(jì)方法簽名

第52項(xiàng):慎用重載

第53項(xiàng):慎用可變參數(shù)

第54項(xiàng):返回零長度的數(shù)組或者集合,而不是null

第55項(xiàng):謹(jǐn)慎返回optinal

第56項(xiàng):為所有導(dǎo)出的API元素編寫文檔注釋

第九章 通用編程

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

第57項(xiàng):將局部變量的作用域最小化

第58項(xiàng):for-each循環(huán)優(yōu)先于傳統(tǒng)的for循環(huán)

第59項(xiàng):了解和使用類庫

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

第61項(xiàng):基本類型優(yōu)先于裝箱基本類型

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

第63項(xiàng):了解字符串連接的性能

第64項(xiàng):通過接口引用對象

第65項(xiàng):接口優(yōu)先于反射機(jī)制

第66項(xiàng):謹(jǐn)慎地使用本地方法

第67項(xiàng):謹(jǐn)慎地進(jìn)行優(yōu)化

第68項(xiàng):遵守普遍接受的命名慣例

第十章 異常

??在最通常情況下,異常可以提高程序的可讀性,可靠性和可維護(hù)性。如果使用不當(dāng),可能會(huì)產(chǎn)生相反的效果。本章提供有效使用異常的指南。

第69項(xiàng):只針對異常的情況才使用異常

第70項(xiàng):對可恢復(fù)的情況使用受檢異常,對編程錯(cuò)誤使用運(yùn)行時(shí)異常

第71項(xiàng):避免不必要地使用受檢異常

第72項(xiàng):優(yōu)先使用標(biāo)準(zhǔn)的異常

第73項(xiàng):拋出與抽象對應(yīng)的異常

第74項(xiàng):每個(gè)方法拋出的所有異常都要建立文檔

第75項(xiàng):在細(xì)節(jié)消息中包含失敗-捕獲信息

第76項(xiàng):努力使失敗保持原子性

第77項(xiàng):不要忽略異常

第十一章 并發(fā)

??線程(RHREADS)機(jī)制允許同時(shí)進(jìn)行多個(gè)活動(dòng)。并發(fā)編程要比單線程編程要困難得多,因?yàn)橛泻芏鄸|西可能出錯(cuò),也很難重現(xiàn)失敗。你無法避免并發(fā)。它本來就存在Java平臺(tái)中了,如果你要從多核處理器中獲得更好的性能,并發(fā)也是一個(gè)必要條件,這些現(xiàn)在都是十分普遍的了。本章闡述的建議可以幫助你編寫出清晰、正確、文檔組織良好的并發(fā)程序。

第78項(xiàng):同步訪問共享的可變數(shù)據(jù)

第79項(xiàng):避免過度同步

第80項(xiàng):executor、task和stream優(yōu)先于線程

第81項(xiàng):并發(fā)工具優(yōu)先于wait和notify

第82項(xiàng):線程安全性的文檔化

第83項(xiàng):慎用延遲初始化

第84項(xiàng):不要依賴于線程調(diào)度器

第十二章 序列化

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

第85項(xiàng):其他方法優(yōu)先于Java序列化

第86項(xiàng):謹(jǐn)慎地實(shí)現(xiàn)Serializable接口

第87項(xiàng):考慮使用自定義的序列化形式

第88項(xiàng):保護(hù)性地編寫readObject方法

第89項(xiàng):對于實(shí)例控制,枚舉類型優(yōu)先于readResolve

第90項(xiàng):考慮用序列化代理代替序列化實(shí)例

附錄 與第2版中項(xiàng)目的對應(yīng)關(guān)系 參考文獻(xiàn)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74634.html

相關(guān)文章

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

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

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

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...

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

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...

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

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...

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

    摘要:全文為這些年,我曾閱讀深入理解過或正在閱讀學(xué)習(xí)即將閱讀的一些優(yōu)秀經(jīng)典前端后端書籍。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 全文為這些年,我曾閱讀、深入理解過(或正在閱讀學(xué)習(xí)、即將閱讀)的一些優(yōu)秀經(jīng)典前端/Java后端書籍。全文為純原創(chuàng),且將持續(xù)更新,未經(jīng)許可,不得進(jìn)行轉(zhuǎn)載。當(dāng)然,如果您喜歡這篇文章,可以動(dòng)手點(diǎn)點(diǎn)贊或者收藏。 基礎(chǔ) 基礎(chǔ)書籍 進(jìn)階 進(jìn)階階段,深入學(xué)習(xí)的書...

    idealcn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

galois

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<