變數名
普通變數命名應該採用首字母小寫,其他字母首字母大寫的方式。
final static變數的名字應該都大寫,並且指出完整含義。如果一個常量名稱由多個單片語成,則應該用下劃線來分割這些單詞如。
NUM_DAYS_IN_WEEK MAX_VALU
如果需要對變數名進行縮寫時,一定要注意整個代碼中縮寫規則的一致性
context=ctx message=msg
通過在結尾處放置一個量詞,就可創建更加統一的變數
First(一組變數中的第一個) Last(一組變數中的最後一個) Next(一組變數中的下一個變數) Prev(一組變數中的上一個) Cur(一組變數中的當前變數)
無論什麼時候,均提倡應用常量取代數字、固定字元串。也就是說,程序中除0,1以外,盡量不應該出現其他數字。
索引變數:i、j、k等只作為小型循環的循環索引變數。
邏輯變數:避免用flag來命名狀態變數,用is來命名邏輯變數。
if(isClosed){ dosomeworks; return; }
數組
總是使用以下方式定義數組:
int[] arr = new int[10];
禁止使用C語言的是形式:
禁止 int arr[] = new int[10];
集合
數組或者容器推薦命名方式為名詞+s的方式,例如:
Listpersons = getPerson(); for(Person person : persons){ dosomeworks; }
泛型
應該盡量簡明扼要(最好是一個字母),以利於與普通的class或interface區分
Container中的Element應該用E表示;Map里的key用K表示,value用V;Type用T表示;異常用X表示
如果需要接收多個Type類型的參數,應該用鄰接T的大寫字母——例如S——來依次表示,當然也可以用T1, T2這樣的方式
public class HashSetextends AbstractSet{…} public class HashMapextends AbstractMap{…} public class ThreadLocal{…} public interface Functor{ T val() throws X; }
推薦的命名
1.當要區別介面和實現類的時候,可以在類的後面加上「Impl」。
interface Container class ContainerImpl
2.Exception類最好能用「Exception」做為類命名的結尾
DataNotFoundException InvalidArgumentException
3.抽象類最好能用「Abstract」做為類命名的開頭
AbstractBeanDefinition AbstractBeanFactory
4. Test類最好能用「Test」做為類命名的結尾
ContainerTest
5.簡稱與縮寫(不推薦使用)
cp代表colorPoint buf代表buffer off代表offset len代表length
除非是在循環中,否則一般不推薦使用單個字母作為變數名,不過也有例外,即約定俗成的單個字母
b代表byte c代表char d代表double e代表Exception f代表float i, j, k代表整數 l代表long o代表Object s代表String v代表某些類型的特定值
代碼風格
花括弧