筆者最近幫助一些朋友應聘遠程工做(通常都是一些國外的項目),國外的項目負責人通常都會要求提供github帳號或者一些源代碼,不少朋友在這一關就被篩選掉了,其中不乏一些我認爲技術很是厲害的行業大牛,他們都研發過不少的大型項目,經驗與技術實力都很是不錯。那到底是爲何呢?我通過仔細的研究,發現他們都有一個共同點,就是命名規範不太嚴謹。我對這些在應聘遠程項目第一關就被篩選掉了的程序員作了一個問卷調查:你都知道哪些java命名規範?最終結果顯示:java
在不少的java程序員看來能作到這些,就已是很規範的命名方式了,究竟還有哪些不足之處?筆者總結了一下java開發中的最經常使用的一些命名規範,若是有不足之處,還請各位朋友不吝賜教!若是您以爲本文對您有幫助,期待您能幫忙關注、轉發!git
軟件項目的包名稱應該是由您的公司的域名的倒序,再加上您的項目的名稱,均使用小寫字母,不能包含其餘符號。能夠在最後添加包的版本,以下圖實例所示:程序員
org.example.aprojectname org.example.aprojectname.innerpkg org.example.aprojectname.innerpkg.anotherpkg org.example.aprojectname.innerpkg2 org.example.anotherproject org.example.anotherproject.v2
類名必須是一個 名詞,使用駝峯命名方式,首字母應大寫,例如HashMap。應該能夠從類名中推斷出它大概會包含什麼樣的函數和變量。例如:github
class Student{} class ArrayList{} class HashMap{} class ComputerEngineer{}
接口名稱應儘可能使用 形容詞。有時也能夠是名詞,如:List或Map。與類的命名規範同樣,使用駝峯命名,首字母應大寫。以下:spring
interface Cloneable{} interface AutoCloseable{} interface PreparedStatement{} interface Engineer{}
變量儘可能是簡短並且有意義的名詞,遵循駝峯命名,首字母小寫。而且不要使用劃線('_
')或美圓符號'$
'字符。springboot
int countOfCustomer; //Of串聯 float averageInterest; //形容詞修飾名詞 long timeInMillisecond, daysInYear; //時間 boolean isEngineer, isCompleted, hasSubmitted; //布爾類型
常量也是程序的重要組成部分。也要使用名詞,或者形容詞修飾的名詞。所有字母大寫,使用下劃線分隔單詞。函數
public static final float PI = 3.14; static int CREATED_ON_YEAR = 2019;
方法名稱要使用動詞,而且應該從名稱中能夠推斷出方法的功能,儘可能簡短。使用駝峯標誌命名。一般, get
和 set
用於分別獲取數據和設置數據。對於布爾值,方法名稱應與與變量名稱相同。學習
void print(Object obj); void remove(Obejct obj); Object update(); int getCountOfCustomer();//getter void setCountOfCustomer(int countOfCustomers);//setter boolean isUserAdmin(User user); //布爾類型
使用單個大寫字母, T使用的比較普遍。E一般被用於集合元素,K和V一般被用於映射關係。請勿使用多字符。rest
public <T> void print(T t); interface List<E>{} class HashMap<K, V> {};