亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Effective Java 第三版 全文翻譯

galois / 2839人閱讀

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

effective-java-third-edition 介紹

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

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

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

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

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

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

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

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

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

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

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

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

第三章 對(duì)于所有對(duì)象都通用的方法

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

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

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

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

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

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

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

第四章 類(lèi)和接口

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

第15項(xiàng):使類(lèi)和成員的可訪(fǎng)問(wèn)性最小化

第16項(xiàng):要在公有類(lèi)而非公有域中使用訪(fǎng)問(wèn)方法

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

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

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

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

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

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

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

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

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

第五章 泛型

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

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

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

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

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

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

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

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

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

第六章 枚舉和注解

??Java支持兩種特殊用途的引用類(lèi)型:一種成為枚舉(enum type)類(lèi)型,以及一種稱(chēng)為注解類(lèi)型(annotation type)的接口。本章討論使用這些類(lèi)型系列的最佳實(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)記接口定義類(lèi)型

第七章 Lambda和Stream

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

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

第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中無(wú)副作用的函數(shù)

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

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

第八章 方法

??本章討論了方法設(shè)計(jì)的幾個(gè)方面:如何處理參數(shù)和返回值,如何設(shè)計(jì)方法簽名以及如何為方法編寫(xiě)文檔。本章中的大部分內(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):返回零長(zhǎng)度的數(shù)組或者集合,而不是null

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

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

第九章 通用編程

??本章主要討論Java語(yǔ)言的具體細(xì)節(jié),討論了局部變量、控制結(jié)構(gòu)、類(lèi)庫(kù)、數(shù)據(jù)類(lèi)型,以及兩種不是由語(yǔ)言本身提供的機(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):了解和使用類(lèi)庫(kù)

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

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

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

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

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

第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):只針對(duì)異常的情況才使用異常

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

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

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

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

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

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

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

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

第十一章 并發(fā)

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

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

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

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

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

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

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

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

第十二章 序列化

??本章關(guān)注對(duì)象序列化(object serialization) ,它是一個(gè)Java的框架,用來(lái)將對(duì)象編碼為字節(jié)流(序列化(serializing)),并從其編碼中重構(gòu)對(duì)象(反序列化(deserializing))。一旦對(duì)象被序列化,其編碼可以從一個(gè)VM發(fā)送到另一個(gè)VM或存儲(chǔ)在磁盤(pán)上以便以后反序列化。本章重點(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ù)性地編寫(xiě)readObject方法

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74634.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

0條評(píng)論

galois

|高級(jí)講師

TA的文章

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