1.強制:大括號的使用約定。如果大括號內爲空,則簡介的寫成 {} 即可,不需要換行;如果是非空代碼塊,則:
1)左大括號之前不換行。
2)右大括號後換行。
3)右大括號前換行。
4)右大括號後還有 else 等代碼則不換行;表示終止的有大括號之後必須換行。
2.強制:左小括號和字符之間不出現空格;同樣,右小括號和字符之間也不出現空格。詳見本節第 5 條下方正例提示。
反例:if (空格a==b空格)
3.強制:if / for / while / switch / do 等保留字與括號之間必須加空格。
4.強制:任何二目、三目運算符的左右兩邊都需要加一個空格。
說明:運算符包括賦值運算符 = 、邏輯運算符 && 、加減乘除符號等。
5.強制:採用 4 個空格縮進,禁止使用 Tab 控制符。
說明:如果使用 Tab 縮進,必須設置 1 個 Tab 爲 4 個空格。IDEA 設置 Tab 爲 4 個 空格是,請勿勾選 Use tab character; 而在 Eclipse 中,必須勾選 insert spaces for tabs 。
正例:(設計 1-5 點)
public static void main( String[] args ){ // 縮進 4 個空格 String say = "hello"; // 運算符的左右必須有 1 個空格 int flag = 0 ; // 關鍵詞 if 與括號之間必須有 1 個空格,括號內的 f 與左括號、0 與右括號之間不需要空格 if (flag == 0){ System.out.println(say); } // 左大括號前加空格且不換行;走大括號後換行 if(flag == 1){ System.out.println("world"); // 右大括號前換行,右大括號後有 else,不用換行 } else { Sysotem.out.println("OK"); //在右大括號後直接結束,則必須換行 } } |
6.強制:註釋的雙斜線與註釋內容之間有且僅有一個空格。
正例://這是示例註釋,請注意在雙斜線之後有一個空格。
String ygb = new String();
7.強制:單行字符數不超過 120 個,超出則需要換行,換行遵循如下原則:
- 第二行相對第一行縮進 4 個空格,從第三行開始,不在繼續縮進,參考示例。
- 運算符與下文一起換行。
- 方法調用的點符號與下文一起換行。
- 方法調用中的多個參數需要換行是,在逗號後進行。
- 在括號前不要換行,見反例。
正例:
StringBuffer sb = new StringBuffer();
// 超過 120 個字符的情況下,換行縮進 4 個空格,點號和方法名稱一起換行
sb.appent("zi").append("xin")...
.appent("huang")...
.appent("huang")...
.appent("huang");
反例:
StringBuffer sb = new StringBuffer();
// 超過 120 個字符的情況下不要在括號前換行
sb.appent("zi").append("xin")....append
("huang");
method(args1, args2, args3, ...
, argsX );
8.強制:方法參數在定義和傳入時,多個參數多好後邊必須加空格。
正例:下例中實參的 “one”,後邊必須要有一個空格。
method("one", "two", "three");
9.強制:IDE 的 text file encoding 設置爲 UTF-8 ; IDE 中文件的換行符使用 UNIX 格式,不要使用 Windows 格式。
10.推薦:沒有不要添加若干個空格來時某一行的字符與上一行對應未知的字符對齊。
正例:
int a = 3;
long b = 4L;
float c = 5F;
說明:增加 sb 這個變量,如果要求對齊,則需要給 a 、b、c 都增加幾個空格,在變量比較多的情況下,這是一件累贅的 事情。
11.推薦:不同邏輯、不同語義、不同業務的代碼之間插入一個空行分隔開,以提高可讀性。
說明:沒有必要插入多個空行來隔開。