格式規約


1. 【強制】大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行 ; 如果是非空程式碼區塊則:

1 ) 左大括號前不換行。

2 ) 左大括號後換行。

3 ) 右大括號前換行。

4 ) 右大括號後面還有 else 等程式碼則不換行 ; 表示終止右大括號後必須換行。

2. 【強制】 左括號和後一個字元之間不出現空格 ; 同樣,右括號和前一個字元之間也不出現空

格。詳見第 5 條下方正例提示。

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";
// 运算符的左右必须有一个空格
int flag = 0;
// 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
if (flag == 0) {
System.out.println(say);
}
// 左大括号前加空格且不换行;左大括号后换行
if (flag == 1) {
System.out.println("world");
// 右大括号前换行,右大括号后有 else,不用换行
} else {
System.out.println("ok");
// 在右大括号后直接结束,则必须换行
}
}

6. 【強制】單行字元數限制不超過120 個,超出需要換行,換行時遵循以下原則:

1) 第二行相對第一行縮排4 個空格,從第三行開始,不再繼續縮進,參考範例。

2 ) 運算子與下文一起換行。

3 ) 方法呼叫的點符號與下文一起換行。

4 ) 在多個參數超長,逗號後進行換行。

5 ) 括號前不要換行,見反例。

正例:

StringBuffer sb = new StringBuffer();
//超过 120 个字符的情况下,换行缩进 4 个空格,并且方法前的点符号一起换行
sb.append("zi").append("xin")...
.append("huang")...
.append("huang")...
.append("huang");

反例:

StringBuffer sb = new StringBuffer();
//超过 120 个字符的情况下,不要在括号前换行
sb.append("zi").append("xin")...append
("huang");
//参数很多的方法调用可能超过 120 个字符,不要在逗号前换行
method(args1, args2, args3, ...
, argsX);

7. 【強制】方法參數在定義和傳入時,多個參數逗號後邊必須加空格。

正例:下例中實參的" a ",後邊必須要有一個空格。

method("a", "b", "c");

8. 【強制】 IDE 的text file encoding 設定為UTF -8 ; IDE 中檔案的換行符號使用Unix 格式,不要使用windows 格式。

9. 【建議】沒有必要增加若干空格來使某一行的字元與上一行的對應字元對齊。

正例:

int a = 3;
long b = 4L;
float c = 5F;
StringBuffer sb = new StringBuffer();

說明:增加sb 這個變量,如果需要對齊,則給a 、 b 、 c 都要增加幾個空格,在變數比較多的情況下,是一種累贅的事情。

10. 【推薦】方法體內的執行語句組、變數的定義語句組、不同的業務邏輯之間或不同的語意之間插入一個空行。相同業務邏輯和語意之間不需要插入空白行。

說明:沒有必要插入多行空格進行隔開。