Java編碼規範

命名

類名使用UpperCamelCase風格。 領域模型相關命名:DO / DTO / VO / DAO等。數據庫

方法名,參數名,成員變量,局部變量都統一使用lowerCamelCase風格。數組

常量名所有大小寫,單詞間用下劃線隔開,不要嫌名字長。安全

抽象類使用Abstract或Base開頭。多線程

異常類命名使用Exception結尾。併發

測試類命名以它要測試的類的名開始,以Test結尾。框架

記住,中括號是數組類型的一部分,String[] args,請勿使用String args[]。dom

POJO類中任何布爾類型的變量,都不要加is,不然部分框架會引發序列化錯誤。異步

枚舉類名建議帶上Enum後綴,枚舉成員名稱須要所有大寫,單詞間用下劃線隔開。工具

Service / DAO層命名規約

  1. 獲取單個對象用get作前綴。
  2. 獲取多個對象用list作前綴。
  3. 獲取統計值的方法用count作前綴。
  4. 插入方法用save。
  5. 刪除方法用remove。
  6. 修改方法用update。

格式規約

  1. 左打括號前不換行。
  2. 左大括號後換行。
  3. 右大括號前換行。
  4. 有大括號後還有else等代碼則不換行;表示終止右大括號必須換行。

集合處理

  1. 使用集合轉數組的方法,必須使用集合的toArray(T[] array),傳入的類型徹底同樣的數組,大小是list.size()。
  2. 使用工具類Array.asList()把數組轉換成集合。
  3. 不要在foreach循環裏進行元素的remove/add操做。remove元素使用Iterator方式,若是併發操做,須要對Iterator對象加鎖。

Iteator<String> it = a.iterator(); while(it.hasNext()){ String temp = it.next(); if(條件){ it.remove(); } }性能

  1. 集合初始化,儘可能指定集合初始化大小。
  2. 使用entrySet遍歷Map集合KV,而不是keySet方式遍歷(keySet方式是遍歷了2次,一次轉換爲Iterator對象,另外一次是從hashMap中取出key對應的value,JDK8,使用Map.foreach方法)。

線程池

  1. 線程池不容許使用Executors建立,而是經過ThreadPoolExecutor方式,這樣處理方式讓寫的同窗明確線程池運行規則,儘可能避免風險。
  2. 使用CountDownLatch進行異步轉同步操做,每一個線程退出前必須調用countDown方法,線程執行cache異常,確保countDown方法額能夠執行。
  3. 避免Random實例被多線程使用,雖然共享該實例是線程安全的,但會因競爭同一個seed致使性能降低。
  4. 循環體中的語句要考量性能,如下操做盡可能移至循環體外處理,如定義對象,變量,獲取數據庫鏈接,進行沒必要要的try-catch操做。
相關文章
相關標籤/搜索