標籤:
java effective 讀書筆記【1】建立和銷毀對象1 靜態Factory 方法 就是“封裝了底層 暴露出一個提供者 ” 門面模式2 多參數時 用構建器,就是用個內部類 再讓內部類提供構造好的對象3 枚舉 singleton 不知道怎麼操作,覺得意義不大 單例模式4 私人化構造器不能執行個體化,也不可被子類繼承5 能用原生類的就盡量不用對象【2】對於所有對象都通用的方法reflexivity 自反性 symmetry 對稱性 【3】類成員 降低可訪問性 盡量把公有域 變成私人域,並提供 訪問和修改的 get set 方法 ,這樣便於 添加協助工具功能 公有類永遠都不要暴露可變的域 使可變性最小 decorator warpper 封裝 property 繼承自hashtable 用 decorator 模式 遇到 property中有的而hashtable中沒有 的 時候 就有問題了 比如(load 或 sotre)要麼為了繼承設計 要麼就不要繼承介面優於抽象類別若有標籤域,最好重構到一個階層中。策略模式strategy 如比較子的底層實現 通過函數對象表示 表示策略 優先考慮靜態成員類盡量使用泛型 以達到類型檢察的目的能不重載盡量不重載盡量不使用變參方法傳回值類型為數組或者集合的方法 即使內容為空白也沒必要返回null盡量些 文檔注釋 把局部變數的範圍盡量縮小 便於閱讀 和使用 對於裝箱基本類型運用==操作符幾乎總是錯誤的使用 StringBuilder 代替 字串串連符 提高效率。 多用介面代替類,使程式比較靈活 介面優先於反射 謹慎使用本地方法 因為本地方法是不安全的,可能破壞記憶體 如果數值範圍沒有超過9位十進位數字--->int如果數值範圍沒有超過18位十進位數字--->long如果數值範圍超過18位十進位數字--->BigDecimal 有限制萬用字元不要快 要好命名 慣例 類名 介面名 單字首大寫 方法名 網域名稱稱 首字母小寫 常量域所有字母大寫 字母間用底線隔開 異常異常捕捉 在必要時候用,能不用盡量不用 異常為異常情況而設計,不需要用在普通控制流程程中。異常類越少越好 節約記憶體 。異常資訊應該針對關鍵點並發不僅僅有互斥 它還提供了其它線程可以看到這個線程的機會 在同步地區中調用外部方法 容易造成死結。盡量減少同步區工作量 BigDecimal<<Java Concurrency in Practice>>java.utiljava.langjava.ioRandom.nextInt();CountDownLatch Semaphore CyclicBarrier ExchangerLaffy is open source on http://laffy.dev.java.net•http://download.java.net/javadesktop/laffy/Laffy.jnlpJava™ for ProgrammersBy Paul Deitel, Harvey M. Deitel
java effective 讀書筆記