Effective Java (目錄)


      在從事軟件開發的十多年間,我曾有幸讀過多種開發語言的Effective系列,如《Effective C++》、《More Effective C++》、《Effective Java》(第一版/第二版)、《Effective C#》和《More Effective C#》,單單從這一點看也算是Effective系列的忠實擁躉了。毋庸置疑,這個系列的書籍對我們研習各種開發語言的進階都有着極為重要的意義。
      在與很多初、中、高級程序員一起合作開發期間,曾多次向他們推薦經典的專業書籍,盡管每種開發語言都有着屬於自己的代表作,如C++ Primer、Thinking in Java和Essential C#等,然而無一例外的是,我都會建議他們去閱讀各自語言的Effective系列,因為他們確實是經典中的經典,特別是當你對該編程語言已經有了一定的開發基礎和理解之后再去學習和研究書中闡述的每一個細節,就會發現書中介紹的case往往就是我們在開發中經常會用到但卻又容易忽視的問題,而程序中的隱患也恰恰來自於我們的視而不見。所以我認為對於該書的閱讀是應該建立在一系列的反復思考實踐之上的,可能這樣的迭代過程會需要很長一段時間,然而在我看來(僅代表個人觀點,如有不同,歡迎交流),它卻是通向編程高手的必經之路。
      OK,現在已經顯而易見了,相信網友們也已經清楚了,這個系列的博客是源自《Effective Java》的讀書筆記。最后,請大家繼續關注本人后面的有關其他技術主題的系列博客。

Effective Java (創建和銷毀對象)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/13/2228354.html
一、考慮用靜態工廠方法代替構造器
二、遇到多個構造參數時要考慮用構建器(Builder模式)
三、用私有構造器或者枚舉類型強化Singleton屬性
四、通過私有構造器強化不可實例化的能力
五、避免創建不必要的對象
六、消除過期的對象引用
七、避免使用終結方法

Effective Java (對象通用方法)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/16/2228360.html
八、覆蓋equals時請遵守通用約定
九、覆蓋equals時總要覆蓋hashCode
十、始終要覆蓋toString
十二、考慮實現Comparable接口

Effective Java (類和接口)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/18/2228349.html
十三、使類和成員的可訪問性最小化
十四、在公有類中使用訪問方法而非公有域
十五、使可變性最小化
十六、復合優先於繼承
十七、要么為繼承而設計,並提供文檔說明,要么就禁止繼承
十八、接口優先於抽象類
十九、接口只用於定義類型
二十、類層次優於標簽類
二十一、用函數對象表示策略
二十二、優先考慮靜態成員類

Effective Java (泛型)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/20/2228938.html
二十三、請不要在新代碼中使用原生態類型
二十四、消除非受檢警告
二十五、列表優先於數組
二十六、優先考慮泛型
二十七、優先考慮泛型方法
二十八、利用有限制通配符來提升API的靈活性
二十九、優先考慮類型安全的異構容器

Effective Java (枚舉)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/23/2232218.html
三十、用enum代替int常量
三十一、用實例域代替序數
三十二、用EnumSet代替位域
三十三、用EnumMap代替序數索引
三十四、用接口模擬可伸縮的枚舉

Effective Java (方法)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/25/2245971.html
三十八、檢查參數的有效性
三十九、必要時進行保護性拷貝
四十一、謹慎重載
四十二、慎用可變參數
四十三、返回零長度的數組或者集合,而不是null

Effective Java (通用程序設計)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/27/2261576.html
四十五、將局部變量的作用域最小化
四十六、for-each循環優先於傳統的for循環
四十八:如果需要精確的答案,請避免使用float和double
四十九、基本類型優先於基本裝箱類型
五十一、當心字符串連接的性能
五十二、通過接口引用對象
五十三、接口優先於反射機制
五十四、謹慎地使用本地方法

Effective Java (異常)
http://www.cnblogs.com/stephen-liu74/archive/2012/01/30/2263585.html
五十七、只針對異常情況才使用異常
五十八、對可恢復的情況使用受檢異常,對編程錯誤使用運行時異常
五十九、避免不必要的使用受檢異常
六十、優先使用標准異常
六十一、拋出與抽象相對應的異常
六十三、在細節中包含能捕獲失敗的信息
六十四、努力使失敗保持原子性
六十五、不要忽略異常

Effective Java (並發)
http://www.cnblogs.com/stephen-liu74/archive/2012/02/01/2270868.html
六十六、同步訪問共享的可變數據
六十七、避免過度同步
六十八、executor和task優先於線程
六十九、並發工具優先於wait和notify
七十一、慎用延遲初始化

Effective Java (序列化)
http://www.cnblogs.com/stephen-liu74/archive/2012/02/03/2284306.html
七十五、考慮使用自定義的序列化形式
七十六、保護性的編寫readObject方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM