Java編碼規范總結(騰訊)
以下內容參考自:Java編碼規范總結(騰訊+阿里)_pursue_vip的博客-CSDN博客_java編碼規范
Java編碼規范總結(參考騰訊編碼規范)
文件組織規則:由于超過2000行的程序難以閱讀,應該盡量避免出現超過2000行的程序。一個Java源文件都包含一個單一的公共類或接口。若私有類和接口與一個公共類相關聯,可以將它們和公共類放入同一個源文件。公共類必須是這個文件中的第一個類或接口。
文件組織順序:
1.文件注釋:所有的源文件都應該在開頭有一個注釋,其中列出文件的版權聲明、文件名、功能描述以及創建、修改記錄:
2.包和引入語句:在多數Java源文件中,第一個非注釋行是包語句。在它之后可以跟導包語句
3. 類或接口注釋:采用JavaDoc文檔注釋,在類、接口定義之前應當對其進行注釋,包括類、接口的描述、最新修改者、版本號、參考鏈接等;
注:JavaDoc文檔注釋:描述Java的類、接口、構造方法、方法、以及字段。每個文檔注釋都會被置于注釋定界符/**...*/之中,一個注釋對應一個類、接口或成員。該注釋應位于聲明之前。文檔注釋的第一行(/**)不需縮進,隨后的文檔注釋每行都縮進1格(使星號縱向對齊)。
4. 類或接口的聲明
5. 類或接口的實現注釋:如果有關類或接口的信息不適合作為“類或接口文檔注釋”,可以在類或接口的實現注釋中給出;
6. 類的(靜態)變量:首先是類的公共變量,隨后是保護變量,再后是包一級別的變量(沒有訪問修飾符),最后是私有變量;
7. 實例變量:首先是公共級別的,隨后是保護級別的,再后是包一級別的(沒有訪問修飾符),最后是私有級別的;
8. 構造方法;
9. 普通方法:方法應該按功能分組,而不應該按作用域或訪問權限進行分組。
1.縮進:程序塊要采用縮進風格編寫,縮進只使用TAB鍵,不能使用空格鍵(編輯器中請將TAB設置為4格);方法體的開始、類的定義、以及if、for、do、while、switch、case語句中的代碼都要采用縮進方式;
2.對齊:程序塊的分界符左大括號"{" 和右大括號"}"都另起一行,應各獨占一行并且位于同一列,同時與引用它們的語句左對齊;對齊只使用TAB鍵,不使用空格鍵;不允許把多個短語句寫在一行中,即一行只寫一條語句;if、for、do、while、case、switch、default等語句自占一行。
3.換行:一行的長度超過80個字符需要換行,換行規則如下:
在一個逗號后面斷開;
在一個操作符前面斷開;
長表達式要在低優先級操作符處劃分新行;
新行縮進2個TAB。
4.間隔:類、方法及相對獨立的程序塊之間、變量說明之后必須加空行;關鍵字之后要留空格, 象if、for、while 等關鍵字之后應留一個空格再跟左括號"(", 以突出關鍵字;方法名與其左括號"("之間不要留空格, 以與關鍵字區別;二元操作符如 " ="、" +=" " >="、" <="、" +"、" *"、" %"、" &&"、" ||"、" <<" ," ^" 等的前后應當加空格;一元操作符如" !"、" ~"、" ++"、" --"等前后不加空格;xiang"[ ]"、" ." 這類操作符前后不加空格;for語句中的表達式應該被空格分開;強制轉型后應該跟一個空格。
1.原則:對已經不推薦使用的類和方法需要注明@Deprecated,并說明替代的類或者方法;對于針對集合、開關的方法,要在方法注釋中表明是否多線程安全。
2.字段注釋: 采用JavaDoc文檔注釋,定義為public的字段必需給出注釋,在類的(靜態)變量、實例變量定義之前當對其進行注釋,給出該字段的描述等:
3.方法注釋:采用JavaDoc文檔注釋,在方法定義之前當對其進行注釋,包括方法的描述、輸入、輸出及返回值說明、拋出異常說明、參考鏈接等:
4.單行注釋格式//
6.多行注釋格式/*……*/
1.基本規則:使用可以準確說明變量、字段、類、接口、包等完整的英文描述符;采用大小寫混合,提高名字的可讀性;采用該領域的術語;盡量少用縮寫,但如果一定要使用,當使用公共縮寫和習慣縮寫等;避免使用相似或者僅在大小寫上有區別的名字。
2.包命名:包名一律小寫, 少用縮寫和長名;采用以下規則:
[基本包].[項目名].[模塊名].[子模塊名]...
不得將類直接定義在基本包下,所有項目中的類、接口等都應當定義在各自的項目和模塊包中。
3.類或接口命名:類或接口名是個一名詞,采用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富于描述。使用完整單詞,避免用縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML)。
4.變量命名: 采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫;變量名不應以下劃線或美元符號開頭;盡量避免單個字符的變量名,除非是一次性的臨時變量。臨時變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字符型;不采用匈牙利命名法則,對不易清楚識別出該變量類型的變量應使用類型名或類型名縮寫作其后綴;組件或部件變量使用其類型名或類型名縮寫作其后綴;集合類型變量,例如數組和矢量,應采用復數命名或使用表示該集合的名詞做后綴。
5.常量命名:全部采用大寫,單詞間用下劃線隔開。
6.方法命名:方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其后單詞的首字母大寫;取值類可使用get前綴,設值類可使用set前綴,判斷類可使用is(has)前綴。
1.類或接口的聲名:類、接口定義語法規范如下
[可見性][('abstract'|'final')] [Class|Interface] class_name
[('extends'|'implements')][父類或接口名]{
//方法體
}
2.方法聲明:良好的程序設計應該盡可能減小類與類之間耦合,所遵循的經驗法則是:盡量限制成員函數的可見性。如果成員函數沒必要公有 (public),就定義為保護 (protected);沒必要保護 (protected),就定義為私有 (private);方法定義語法規范:
[可見性]['abstract'] [‘static’] ['final'] ['synchronized'][返回值類型] method_name(參數列表)[('throws')][異常列表]{
//方法體
}
聲明順序:構造方法、靜態公共方法、靜態私有方法、公共方法、友元方法、受保護方法、私有方法、main方法;方法參數建議順序:(被操作者,操作內容,操作標志,其他)。
3.變量聲明:一行一個聲明;聲明局部變量的同時初始化(在變量的初始值依賴于某些先前發生的計算的特殊情況下可以不用同時初始化);只在代碼塊的開始處聲明變量,(一個塊是指任何被包含在大括號"{"和"}"中間的代碼)不要在首次用到該變量時才聲明;避免聲明的局部變量覆蓋上一級聲明的變量,即不要在內部代碼塊中聲明相同的變量名;公共和保護的可見性應當盡量避免,所有的字段都建議置為私有,由獲取和設置成員函數(Getter、Setter)訪問;定義一個變量或者常量的時候,不要包含包名(類似java.security.MessageDigest digest = null),除非是兩個包有相同的類名;數組聲明時應當將"[]"跟在類型后,而不是字段名后;聲明順序:常量、類變量、實例變量、公有字段、受保護字段、友元字段、私有字段。
1.捕捉異常的目的是為了處理它
2. 多個異常應分別捕捉并處理,避免使用一個單一的catch來處理。
1. if、for、do、while等語句的執行語句部分無論多少都要加括號"{}"
2. 每當一個case順著往下執行時(因為沒有break語句),通常應在break語句的位置添加注釋;
3. 盡量避免在循環中構造和釋放對象
4. 在使用局部變量的過程,按就近原則處理。不允許定義一個局部變量,然后在很遠的地方才使用;
5.相同的功能不允許復制成N份代碼;
6. 在處理 String 的時候要盡量使用 StringBuffer 類。
讀后感
讀《數學之美》第一章 文字和語言vs數字和信息,吳軍博士將其分為“信息”,“文字和數字”,“文字和語言背后的數學”這三個部分,吳軍博士通過講述歷史的方式,向我們介紹了文字,語言起源,發展的過程,當我第一次接觸到這些我先前不知道的歷史時,我的注意力完全被書中的內容吸引住了,而在“文字和語言背后的數學”這一部分,吳軍博士通過分析語言的形成與傳輸過程來告訴我們現在的數字和信息有與之相似的構成原理,解開了我對如何將文字和語言轉換為自然語言的困惑,其中令我印象最深的一句話就是“他們過去遵循的法則和我們今天探究的研究方法背后有著共同的東西,這就是數學規律”,強調了學好數學,是解決許多問題的關鍵!

浙公網安備 33010602011771號