《編寫(xiě)高質(zhì)量代碼之Java》.epub .txt
基本信息:
-
書(shū)名: 編寫(xiě)高質(zhì)量代碼之Java
作者: 秦小波 & 成林
國(guó)際標(biāo)準(zhǔn)書(shū)號(hào): 978-7-111-36259-3 978-7-111-39905-6
電子版包括 .epub .txt等格式:
《編寫(xiě)高質(zhì)量代碼之Java》秦小波.epub 文件 3778 KB,
《編寫(xiě)高質(zhì)量代碼之Java》秦小波.txt 文件 1492 KB。
pdf部分截圖:
目錄簡(jiǎn)介:
- 編寫(xiě)高質(zhì)量代碼:改善Java程序的151個(gè)建議
前言
為什么寫(xiě)這本書(shū)
希望本書(shū)能幫您少走彎路
希望本書(shū)能幫您打牢基礎(chǔ)
希望本書(shū)能幫您打造一支技術(shù)戰(zhàn)斗力強(qiáng)的團(tuán)隊(duì)
本書(shū)特色
本書(shū)面向的讀者
如何閱讀本書(shū)
勘誤與支持
致謝
第1章 Java開(kāi)發(fā)中通用的方法和準(zhǔn)則
建議1:不要在常量和變量中出現(xiàn)易混淆的字母
建議2:莫讓常量蛻變成變量
建議3:三元操作符的類(lèi)型務(wù)必一致
建議4:避免帶有變長(zhǎng)參數(shù)的方法重載
建議5:別讓null值和空值威脅到變長(zhǎng)方法
建議6:覆寫(xiě)變長(zhǎng)方法也循規(guī)蹈矩
建議7:警惕自增的陷阱
建議8:不要讓舊語(yǔ)法困擾你
建議9:少用靜態(tài)導(dǎo)入
建議10:不要在本類(lèi)中覆蓋靜態(tài)導(dǎo)入的變量和方法
建議11:養(yǎng)成良好習(xí)慣,顯式聲明UID
建議12:避免用序列化類(lèi)在構(gòu)造函數(shù)中為不變量賦值
建議13:避免為final變量復(fù)雜賦值
建議14:使用序列化類(lèi)的私有方法巧妙解決部分屬性持久化問(wèn)題
建議15:break萬(wàn)萬(wàn)不可忘
建議16:易變業(yè)務(wù)使用腳本語(yǔ)言編寫(xiě)
建議17:慎用動(dòng)態(tài)編譯
建議18:避免instanceof非預(yù)期結(jié)果
建議19:斷言絕對(duì)不是雞肋
建議20:不要只替換一個(gè)類(lèi)
第2章 基本類(lèi)型
建議21:用偶判斷,不用奇判斷
建議22:用整數(shù)類(lèi)型處理貨幣
建議23:不要讓類(lèi)型默默轉(zhuǎn)換
建議24:邊界,邊界,還是邊界
建議25:不要讓四舍五入虧了一方
建議26:提防包裝類(lèi)型的null值
建議27:謹(jǐn)慎包裝類(lèi)型的大小比較
建議28:優(yōu)先使用整型池
建議29:優(yōu)先選擇基本類(lèi)型
建議30:不要隨便設(shè)置隨機(jī)種子
第3章 類(lèi)、對(duì)象及方法
建議31:在接口中不要存在實(shí)現(xiàn)代碼
建議32:靜態(tài)變量一定要先聲明后賦值
建議33:不要覆寫(xiě)靜態(tài)方法
建議34:構(gòu)造函數(shù)盡量簡(jiǎn)化
建議35:避免在構(gòu)造函數(shù)中初始化其他類(lèi)
建議36:使用構(gòu)造代碼塊精煉程序
建議37:構(gòu)造代碼塊會(huì)想你所想
建議38:使用靜態(tài)內(nèi)部類(lèi)提高封裝性
建議39:使用匿名類(lèi)的構(gòu)造函數(shù)
建議40:匿名類(lèi)的構(gòu)造函數(shù)很特殊
建議41:讓多重繼承成為現(xiàn)實(shí)
建議42:讓工具類(lèi)不可實(shí)例化
建議43:避免對(duì)象的淺拷貝
建議44:推薦使用序列化實(shí)現(xiàn)對(duì)象的拷貝
建議45:覆寫(xiě)equals方法時(shí)不要識(shí)別不出自己
建議46:equals應(yīng)該考慮null值情景
建議47:在equals中使用getClass進(jìn)行類(lèi)型判斷
建議48:覆寫(xiě)equals方法必須覆寫(xiě)hashCode方法
建議49:推薦覆寫(xiě)toString方法
建議50:使用package-info類(lèi)為包服務(wù)
建議51:不要主動(dòng)進(jìn)行垃圾回收
第4章 字符串
建議52:推薦使用String直接量賦值
建議53:注意方法中傳遞的參數(shù)要求
建議54:正確使用String、StringBuffer、StringBuilder
建議55:注意字符串的位置
建議56:自由選擇字符串拼接方法
建議57:推薦在復(fù)雜字符串操作中使用正則表達(dá)式
建議58:強(qiáng)烈建議使用UTF編碼
建議59:對(duì)字符串排序持一種寬容的心態(tài)
第5章 數(shù)組和集合
建議60:性能考慮,數(shù)組是首選
建議61:若有必要,使用變長(zhǎng)數(shù)組
建議62:警惕數(shù)組的淺拷貝
建議63:在明確的場(chǎng)景下,為集合指定初始容量
建議64:多種最值算法,適時(shí)選擇
建議65:避開(kāi)基本類(lèi)型數(shù)組轉(zhuǎn)換列表陷阱
建議66:asList方法產(chǎn)生的List對(duì)象不可更改
建議67:不同的列表選擇不同的遍歷方法
建議68:頻繁插入和刪除時(shí)使用LinkedList
建議69:列表相等只需關(guān)心元素?cái)?shù)據(jù)
建議70:子列表只是原列表的一個(gè)視圖
建議71:推薦使用subList處理局部列表
建議72:生成子列表后不要再操作原列表
建議73:使用Comparator進(jìn)行排序
建議74:不推薦使用binarySearch對(duì)列表進(jìn)行檢索
建議75:集合中的元素必須做到compareTo和equals同步
建議76:集合運(yùn)算時(shí)使用更優(yōu)雅的方式
建議77:使用shuffle打亂列表
建議78:減少HashMap中元素的數(shù)量
建議79:集合中的哈希碼不要重復(fù)
建議80:多線(xiàn)程使用Vector或HashTable
建議81:非穩(wěn)定排序推薦使用List
建議82:由點(diǎn)及面,一葉知秋——集合大家族
第6章 枚舉和注解
建議83:推薦使用枚舉定義常量
建議84:使用構(gòu)造函數(shù)協(xié)助描述枚舉項(xiàng)
建議85:小心switch帶來(lái)的空值異常
建議86:在switch的default代碼塊中增加AssertionError錯(cuò)誤
建議87:使用valueOf前必須進(jìn)行校驗(yàn)
建議88:用枚舉實(shí)現(xiàn)工廠(chǎng)方法模式更簡(jiǎn)潔
建議89:枚舉項(xiàng)的數(shù)量限制在64個(gè)以?xún)?nèi)
建議90:小心注解繼承
建議91:枚舉和注解結(jié)合使用威力更大
建議92:注意@Override不同版本的區(qū)別
第7章 泛型和反射
建議93:Java的泛型是類(lèi)型擦除的
建議94:不能初始化泛型參數(shù)和數(shù)組
建議95:強(qiáng)制聲明泛型的實(shí)際類(lèi)型
建議96:不同的場(chǎng)景使用不同的泛型通配符
建議97:警惕泛型是不能協(xié)變和逆變的
建議98:建議采用的順序是List、List、List
建議99:嚴(yán)格限定泛型類(lèi)型采用多重界限
建議100:數(shù)組的真實(shí)類(lèi)型必須是泛型類(lèi)型的子類(lèi)型
建議101:注意Class類(lèi)的特殊性
建議102:適時(shí)選擇getDeclared×××和get×××
建議103:反射訪(fǎng)問(wèn)屬性或方法時(shí)將Accessible設(shè)置為true
建議104:使用forName動(dòng)態(tài)加載類(lèi)文件
建議105:動(dòng)態(tài)加載不適合數(shù)組
建議106:動(dòng)態(tài)代理可以使代理模式更加靈活
建議107:使用反射增加裝飾模式的普適性
建議108:反射讓模板方法模式更強(qiáng)大
建議109:不需要太多關(guān)注反射效率
第8章 異常
建議110:提倡異常封裝
建議111:采用異常鏈傳遞異常
建議112:受檢異常盡可能轉(zhuǎn)化為非受檢異常
建議113:不要在finally塊中處理返回值
建議114:不要在構(gòu)造函數(shù)中拋出異常
建議115:使用Throwable獲得棧信息
建議116:異常只為異常服務(wù)
建議117:多使用異常,把性能問(wèn)題放一邊
第9章 多線(xiàn)程和并發(fā)
建議118:不推薦覆寫(xiě)start方法
建議119:?jiǎn)?dòng)線(xiàn)程前stop方法是不可靠的
建議120:不使用stop方法停止線(xiàn)程
建議121:線(xiàn)程優(yōu)先級(jí)只使用三個(gè)等級(jí)
建議122:使用線(xiàn)程異常處理器提升系統(tǒng)可靠性
建議123:volatile不能保證數(shù)據(jù)同步
建議124:異步運(yùn)算考慮使用Callable接口
建議125:優(yōu)先選擇線(xiàn)程池
建議126:適時(shí)選擇不同的線(xiàn)程池來(lái)實(shí)現(xiàn)
建議127:Lock與synchronized是不一樣的
建議12
本頁(yè)網(wǎng)址:
相關(guān)資料1:
相關(guān)資料2:
- 《算法圖解:像小說(shuō)一樣有趣的算法入門(mén)書(shū)》Aditya+Bhargava.pdf
- 《跟各國(guó)人都聊得來(lái):三個(gè)月外語(yǔ)流利術(shù)》本尼·劉易斯.pdf
- 《算法的樂(lè)趣》王曉華.pdf
- 《讓問(wèn)題到你為止》博恩·崔西.epub
- 《極簡(jiǎn)工作Ⅱ:打敗拖延和焦慮,從整理電腦開(kāi)始》約根·庫(kù)爾茲.pdf
- 《京東區(qū)塊鏈技術(shù)實(shí)踐白皮書(shū)》京東.pdf
- 《程序之美系列(套裝共6冊(cè))》.epub
- 《第一本Docker書(shū)(修訂版)》 詹姆斯·特恩布爾.pdf
- 《高效程序員的45個(gè)習(xí)慣:敏捷開(kāi)發(fā)修煉之道》Venkat Subramaniam.pdf
- 《全棧應(yīng)用開(kāi)發(fā):精益實(shí)踐》黃峰達(dá).pdf
- 《實(shí)戰(zhàn)Java高并發(fā)程序設(shè)計(jì)》葛一鳴&郭超.pdf
- 《15秒的商機(jī):抖音電商運(yùn)營(yíng)實(shí)戰(zhàn)指南》胡涵林.pdf
- 《程序員的思維修煉:開(kāi)發(fā)認(rèn)知潛能的九堂課》Andy Hunt.epub
- 《從零開(kāi)始做播客:創(chuàng)造網(wǎng)紅主播》奧蘭多·里奧斯.pdf
- [玩賺抖音短視頻:入門(mén)定位+內(nèi)容創(chuàng)作+品牌營(yíng)銷(xiāo)+引流變現(xiàn).epub