1、命名規範html
一、 項目名所有小寫java
二、 包名統一使用小寫,點分隔符之間有且僅有一個天然語義的英語單詞,包名統一使用單數形式。若是類名有複數含義,類名可使用複數形式。app
實際應用中:框架
各層命名規約:
A) Service / DAO 層方法命名規約
1 ) 獲取單個對象的方法用 get 作前綴。
2 ) 獲取多個對象的方法用 list 作前綴。
3 ) 獲取統計值的方法用 count 作前綴。
4 ) 插入的方法用 save( 推薦 ) 或 insert 作前綴。
5 ) 刪除的方法用 remove( 推薦 ) 或 delete 作前綴。
6 ) 修改的方法用 update 作前綴。
B) 領域模型命名規約
1 ) 數據對象: xxxDO , xxx 即爲數據表名。
2 ) 數據傳輸對象: xxxDTO , xxx 爲業務領域相關的名稱。
3 ) 展現對象: xxxVO , xxx 通常爲網頁名稱。
4 ) POJO 是 DO / DTO / BO / VO 的統稱,禁止命名成 xxxPOJO 。函數
三、 類名首字母大寫,若是類名由多個單詞組成,每一個單詞的首字母都要大寫,必須聽從駝峯形式。測試
如:public class MyFirstClass{}this
抽象類命名使用 Abstract 或 Base 開頭 ; 異常類命名使用 Exception 結尾 ; 測試類命名以它要測試的類的名稱開始,以 Test 結尾。spa
對於 Service 和 DAO 類,基於 SOA 的理念,暴露出來的服務必定是接口,內部的實現類用 Impl 的後綴與接口區別。.net
推薦實體類沒有後綴名。code
POJO 類中布爾類型的變量,都不要加 is ,不然部分框架解析會引發序列化錯誤。
四、 變量名、方法名首字母小寫,若是名稱由多個單詞組成,每一個單詞的首字母都要大寫。
如:int index=0;
public void toString(){}
五、常量命名所有大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長。 例如:MAX_NAME_LENGTH
六、全部命名規則必須遵循如下規則:
1)、名稱只能由字母、數字、下劃線、$符號組成
2)、不能以數字開頭
3)、名稱不能使用JAVA中的關鍵字。
4)、堅定不容許出現中文及拼音命名。
七、源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用類名做爲文件名保存(切記Java是大小寫敏感的),文件名的後綴爲.java。
(若是文件名和類名不相同則會致使編譯錯誤)。
主方法入口:全部的Java 程序由public static void main(String []args)方法開始執行。
2、註釋規範
Java除了能夠採用咱們常見的註釋方式(//、/* */)以外,Java語言規範還定義了一種特殊的註釋,也就是咱們所說的Javadoc註釋,以/**開頭,而以*/結束, Javadoc 註釋能夠被自動轉爲在線文檔,省去了單獨編寫程序文檔的麻煩。 推薦使用。
Javadoc註釋主要涉及範圍:類、屬性、方法:
一、 類註釋
在每一個類前面必須加上類註釋,註釋模板以下:
/**
* Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.
* FileName: Test.java
* 類的詳細說明
*
* @author 類建立者姓名
* @Date 建立日期
* @version 1.00
*/
二、 屬性註釋
在每一個屬性前面必須加上屬性註釋,註釋模板以下:
/** 提示信息 */
private String strMsg = null;
三、 方法註釋
在每一個方法前面必須加上方法註釋,註釋模板以下:
/**
* 類方法的詳細使用說明
*
* @param 參數1 參數1的使用說明
* @return 返回結果的說明
* @throws 異常類型.錯誤代碼 註明今後類方法中拋出異常的說明
*/
四、 構造方法註釋
在每一個構造方法前面必須加上註釋,註釋模板以下:
/**
* 構造方法的詳細使用說明
*
* @param 參數1 參數1的使用說明
* @throws 異常類型.錯誤代碼 註明今後類方法中拋出異常的說明
*/
五、 方法內部註釋
在方法內部使用單行或者多行註釋,該註釋根據實際狀況添加。
如://背景顏色
Color bgColor = Color.RED
1 import java.net.InetAddress; 2 import java.util.Arrays; 3 /** 4 * 該類的總體性描述。 5 * 6 * @author 做者 7 * @version 1.0, 05/22/07 8 * @since 1.0 9 */ 10 public class ChannelBinding { 11 /** 12 * 對該變量的備註信息 13 */ 14 private InetAddress initiator; 15 /** 16 * 對該變量的備註信息 17 */ 18 private InetAddress acceptor; 19 /** 20 * 對該變量的備註信息 21 */ 22 private byte[] appData; 23 24 /** 25 * 對該類的構造函數的備註信息。 26 * 27 * @param initAddr 對參數的備註。 28 * @param acceptAddr對參數的備註。 29 * @param appData對參數的備註。 30 */ 31 public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr, 32 byte[] appData) { 33 initiator = initAddr; 34 acceptor = acceptAddr; 35 if (appData != null) { 36 this.appData = new byte[appData.length]; 37 java.lang.System.arraycopy(appData, 0, this.appData, 0, 38 appData.length); 39 } 40 } 41 42 /** 43 * 對該類的具體一函數的備註信息 44 * 45 * @param obj 參數的備註信息 46 * @return 返回值的備註信息 47 */ 48 public boolean equals(Object obj) { 49 if (this == obj) 50 return true; 51 if (! (obj instanceof ChannelBinding)) 52 return false; 53 ChannelBinding cb = (ChannelBinding) obj; 54 return Arrays.equals(appData, cb.appData); 55 } 56 }
摘抄至:https://www.cnblogs.com/FocusIN/p/5811189.html
https://www.cnblogs.com/zshibo/p/8007123.html