溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java編寫代碼的規(guī)范有哪些?

發(fā)布時間:2020-05-25 09:41:48 來源:億速云 閱讀:340 作者:Leah 欄目:編程語言

Java編寫代碼的規(guī)范有哪些?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。通過這個問題,希望你能收獲更多。


Java的入門過程中,我們首先要養(yǎng)成一個良好的編寫代碼習(xí)慣。那么,了解清楚Java的編碼規(guī)范就顯得尤為必要了。編碼格式不僅僅是美不美觀的問題。這里我們可以試想一下,如果在Java開發(fā)中編碼不規(guī)范,容易出現(xiàn)bug不說,而且后續(xù)還難以維護(hù)。因此,遵守編碼規(guī)范可以讓代碼的風(fēng)格好像是一個人寫出來的,即使是有很多人參與這個開發(fā)項目。

 1、源文件基礎(chǔ)

 

源文件以其最頂層的類名來命名,大小寫敏感,文件擴(kuò)展名為 .java。源文件編碼格式為UTF-8。除了行結(jié)束符序列,ASCII水平空格字符(0x20,即空格)是源文件中唯一允許出現(xiàn)的空白字符,這意味著所有其它字符串中的空白字符都要進(jìn)行轉(zhuǎn)義;制表符不用于縮進(jìn)。對于具有特殊轉(zhuǎn)義序列的任何字符(\b, \t, \n, \f, \r, ", '),我們使用它的轉(zhuǎn)義序列,而不是相應(yīng)的八進(jìn)制(比如 \012)Unicode(比如 \u000a)轉(zhuǎn)義。對于剩余的非ASCII字符,是使用實際的Unicode字符(比如∞),還是使用等價的Unicode轉(zhuǎn)義符(比如\u221e),取決于哪個能讓代碼更易于閱讀和理解。

 

2、源文件結(jié)構(gòu)

 

一個源文件包含(按順序地):許可證或版權(quán)信息;package語句;import語句;一個頂級類。以上每個部分之間用一個空行隔開。如果一個文件包含許可證或版權(quán)信息,那么它應(yīng)當(dāng)被放在文件最前面。package語句不換行,列限制(4.4節(jié))并不適用于package語句。import不要使用通配符,不要換行。

 

3、格式

 

大括號與 if,else,for,do,while語句一起使用,即使只有一條語句(或是空),也應(yīng)該把大括號寫上。對于非空塊和塊狀結(jié)構(gòu),大括號遵循KernighanRitchie風(fēng)格,左大括號前不換行;左大括號后換行;右大括號前換行;如果右大括號是一個語句、函數(shù)體或類的終止,則右大括號后換行; 否則不換行。例如,如果右大括號后面是else或逗號,則不換行。一個空的塊狀結(jié)構(gòu)里什么也不包含,大括號可以簡潔地寫成 {},不需要換行。例外:如果它是一個多塊語句的一部分(if/else try/catch/finally) ,即使大括號內(nèi)沒內(nèi)容,右大括號也要換行。每當(dāng)開始一個新的塊,縮進(jìn)增加2個空格,當(dāng)塊結(jié)束時,縮進(jìn)返回先前的縮進(jìn)級別??s進(jìn)級別適用于代碼和注釋。

 

4、空白

 

以下情況需要使用一個空行:類內(nèi)連續(xù)的成員之間:字段,構(gòu)造函數(shù),方法,嵌套類,靜態(tài)初始化塊,實例初始化塊;在函數(shù)體內(nèi),語句的邏輯分組間使用空行;類內(nèi)的第一個成員前或最后一個成員后的空行是可選;要滿足本文檔中其他節(jié)的空行要求。除了語言需求和其它規(guī)則,并且除了文字,注釋和Javadoc用到單個空格,單個ASCII空格也出現(xiàn)在以下幾個地方:分隔任何保留字與緊隨其后的左括號( ()( if,forcatch);分隔任何保留字與其前面的右大括號( })( else,catch)等等。

 

5、命名約定

 

對所有標(biāo)識符都通用的規(guī)則,標(biāo)識符只能使用ASCII字母和數(shù)字,因此每個有效的標(biāo)識符名稱都能匹配正則表達(dá)式 \w+。類名都以 UpperCamelCase風(fēng)格編寫,方法名都以 lowerCamelCase風(fēng)格編寫;常量名命名模式為 CONSTANT_CASE,全部字母大寫,用下劃線分隔單詞;非常量字段名以 lowerCamelCase風(fēng)格編寫;參數(shù)名以 lowerCamelCase風(fēng)格編寫;比起其它類型的名稱,局部變量名可以有更為寬松的縮寫。、

 

6、編程實踐

 

只要是合法的,就把 @Override注解給用上。使用類名調(diào)用靜態(tài)的類成員,而不是具體某個對象或表達(dá)式。極少會去重寫 Object.finalize。

 

上面我們談?wù)摰腏ava編碼規(guī)范,可以把它看做是一種需要盡量去做的標(biāo)準(zhǔn)守則,而不是強(qiáng)制的命令要求。

關(guān)于Java編寫代碼的規(guī)范就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI