#文件名
源文件以其最頂層的類名來命名,大小寫敏感,文件擴展名為.java。
#編碼方式
UTF-8
#結構
一個源文件包含(按順序地):
許可證或版權信息(如有需要)
package語句
import語句
一個頂級類(只有一個)
***以上每個部分之間用一個空行隔開。
#package
(即package語句寫在一行里)
#import
不要出現類似這樣的import語句:import java.util.*;
(每個import語句獨立成行)
import語句可分為以下幾組,按照這個順序,每組由一個空行分隔:
所有的靜態導入獨立成組
com.google imports(僅當這個源文件是在com.google包下)
第三方的包。每個頂級包為一組,字典序。例如:android, com, junit, org, sun
java imports
javax imports
組內不空行,按字典序排列。
#類聲明
3.4.1 只有一個頂級類聲明
每個頂級類都在一個與它同名的源文件中(當然,還包含.java后綴)。
例外:package-info.java,該文件中可沒有package-info類。
3.4.2 類成員順序
類的成員順序對易學性有很大的影響,但這也不存在唯一的通用法則。不同的類對成員的排序可能是不同的。 最重要的一點,每個類應該以某種邏輯去排序它的成員,維護者應該要能解釋這種排序邏輯。比如, 新的方法不能總是習慣性地添加到類的結尾,因為這樣就是按時間順序而非某種邏輯來排序的。
3.4.2.1 重載:永不分離
當一個類有多個構造函數,或是多個同名方法,這些函數/方法應該按順序出現在一起,中間不要放進其它函數/方法。
#大括號
4.1.1 使用大括號(即使是可選的)
大括號與if, else, for, do, while語句一起使用,即使只有一條語句(或是空),也應該把大括號寫上。
4.1.2 非空塊:K & R 風格
對于非空塊和塊狀結構,大括號遵循Kernighan和Ritchie風格 (Egyptian brackets):
左大括號前不換行
左大括號后換行
右大括號前換行
如果右大括號是一個語句、函數體或類的終止,則右大括號后換行; 否則不換行。例如,如果右大括號后面是else或逗號,則不換行。
示例:
return new MyClass() {
@Override public void method() {
if (condition()) {
try {
something();
} catch (ProblemException e) {
recover();
}
}
}
};