創建和銷毀對象 1、考慮用靜態工廠方法(返回類的實例的靜態方法)代替構造器2、遇到多個構造器參數時要考慮用構造器3、用私有構造器或者枚舉類型強化Singleton屬性4、通過私有構造器強化不可實例化的能力5、避免創建不必要的對象6、消除過期的對象引用7、避免使用終結(final)方法 對于所有對象都通用的方法8、覆蓋equals時請遵守通用約定9、覆蓋equals時總要覆蓋hashCode10、始終要覆蓋toString11、謹慎地覆蓋clone12、考慮實現Comparable接口 類和接口13、使類和成員的可訪問性最小化14、在公有類中使用訪問方法而非公有域15、使可變性最小化16、復合優于繼承17、要么為繼承為設計,并提供文檔說明,要么就禁止繼承18、接口優于抽象類19、接口只用于定義類型20、類層次優于標簽類21、用函數對象表示策略22、優先考慮靜態成員類 泛型23、不要在新代碼中采用原生態類型24、消除非受檢警告25、列表優先于數組26、優先考慮泛型27、優先考慮泛型方法28、采用有限制通配符來提升API的靈活性29、優先考慮類型安全的異構造器 枚舉和注解30、用enum帶起int常量31、用實例域代替序數32、用EnumSet代替位域33、用EnumMap代替序數索引34、用接口模擬可伸縮的枚舉35、注解優先于命名模式36、堅持使用Override注解37、用標記接口定義類型 方法38、檢查參數的有效性39、必要時進行保護性拷貝40、謹慎設計方法簽名41、慎用重載42、慎用可變參數43、返回零長度的數組或者集合,而不是null44、為所有導出的API元素編寫文檔注釋 通用程序設計45、將局部變量的作用域最小化46、for-each循環優先于傳統的for循環,[for循環為何可恨]http://justjavac.com/other/2012/05/15/whats-wrong-with-the-for-loop.html47、了解和使用類庫48、如果需要精確的答案,請避免使用float和double49、基本類型優先于裝箱基本類型50、如果其他類型更適合,則盡量避免使用字符串51、當心字符串鏈接的性能52、通過接口引用對象53、接口優先于反射機制54、謹慎使用本地方法55、謹慎進行優化56、遵守普遍接受的命名慣例 異常57、只針對異常的情況才使用異常58、對可恢復的情況使用受檢異常,對編程錯誤使用運行時異常59、避免不必要地使用受檢的異常60、優先使用標準的異常61、拋出與抽象相對應的異常62、每個方法拋出的異常都要有文檔63、在細節消息中包含捕獲失敗的信息64、努力使失敗包含原子性65、不要忽略異常 并發66、同步訪問共享的可變數據67、避免過度同步68、executor和task優先于線程69、并發工具優先于wait和notify70、線程安全性的文檔化...... |
詳細說明:http://java.662p.com/thread-3615-1-1.html
新聞熱點
疑難解答