源檔案編碼格式為 utf-8。
源檔案以其最頂層的類名來命名,大小寫敏感,檔案擴充名為.java。
如果一個檔案包含許可證或版權資訊,那麼它應當被放在檔案最前面。
package 語句不換行,列限制(3.4節)并不适用于package語句。(即package語句寫在一行裡)
1、import不要使用通配符:
2、不要換行:
類成員順序對代碼的可讀性是有很大幫助的,從上到下的排列順序為:
1、使用大括号(即使是可選的)
2、非空塊:k & r 風格
對于非空塊和塊狀結構,大括号遵循 kernighan 和 ritchie 風格 (egyptian brackets):
例如,如果右大括号後面是else或逗号,則不換行。
示例:
一個空的塊狀結構裡什麼也不包含,大括号可以簡潔地寫成{},不需要換行。
例外:如果它是一個多塊語句的一部分(if/else 或 try/catch/finally) ,即使大括号内沒内容,右大括号也要換行。
每當開始一個新的塊,縮進增加4個空格,當塊結束時,縮進傳回先前的縮進級别。縮進級别适用于代碼和注釋。(見3.1.2節中的代碼示例)
每個語句後要換行。
一個項目可以選擇一行80個字元或100個字元的列限制,除了下述例外,任何一行如果超過這個字元數限制,必須自動換行。
有且隻有一個換行
1、枚舉類
枚舉常量間用逗号隔開,換行可選。
2、變量聲明
1)、每次隻聲明一個變量
2)、需要時才聲明,并盡快進行初始化
3、數組
1)、非c風格的數組聲明
4、switch語句
5、注解(annotations)
1)、方法注解
2)、變量注解
6、modifiers(修飾)
類名都以uppercamelcase風格編寫,字尾類型,不要加下劃線。
類名通常是名詞或名詞短語,接口名稱有時可能是形容詞或形容詞短語。名詞,采用大駝峰命名法,盡量避免縮寫,除非該縮寫是衆所周知的, 比如html,url,如果類名稱中包含單詞縮寫,則單詞縮寫的每個字母均應大寫。
測試類的命名以它要測試的類的名稱開始,以test結束。
例如:hashtest 或 hashintegrationtest。
接口(interface):命名規則與類一樣采用大駝峰命名法,多以able或ible結尾,如
interface runnable ;
interface accessible;
方法名都以 lowercamelcase 風格編寫。
方法名通常是動詞或動詞短語。
1、控件類型
2、其他類型
資源檔案命名與java命名不同,大多采用字首命名法,對類型進行區分
1、控件id命名
2、layout命名
元件類型{範圍}功能,範圍可選,隻在有明确定義的範圍内才需要加上。
3、string的命名
類型{範圍}功能,範圍可選。
傳統命名方式:
建議命名方式:
string命名如果以傳統命名法來命名,有些按照業務邏輯進行命名,好處是可插拔,壞處是資源命名滿天飛,疊代周期久後導緻過于臃腫,建議根據實際意義進行命名。
4、colors的命名
字首{控件}{範圍}{_字尾},控件、範圍、字尾可選,但控件和範圍至少要有一個。
由于色值複用較多,個人建議采用更為直接的匈牙利命名法,達到更直覺,更簡潔的使用
5、drawable的命名
6、動畫檔案命名
動畫類型_動畫方向。
1、 ui控件縮寫表 : 建議控件的命名以字首命名
2、常見英文單詞縮寫表