阿里巴巴java開發(fā)手冊第一章

命名不能以下劃線或美元進行開始和結(jié)尾

//反面教材

private String _name;

private Integer $Object;

private boolean name_;

private BigDecimal Object$;

禁止使用拼音和英文的并用,禁止直接使用拼音和中文(知名的拼音等同于英文)

//反面教材

private String DaZhePromotion;//[打折]

//正面教材

private String taobao;

需要使用駝峰樣式的命名

1).類名,MarcoPolo,但是類名的開頭必須為大寫

2).方法名

3).參數(shù)名

4).成員變量

5).局部變量

常量全部大寫,單詞之間用下劃線隔開

//正面教材

private String MAX_STOCK_COUNT;

DTO,POJO,JO類中布爾型的成員變量不要以is開頭

說明:定義為基本數(shù)據(jù)類型Boolean isDeleted的屬性,它的方法也是isDeleted(),RPC框架在反向解析的時候,“以為”對應(yīng)的屬性名稱是 deleted,導(dǎo)致屬性獲取不到,進而拋出異常。

數(shù)組定義時,中括號放置在類型后面,禁止放置在變量名后面

//正面教材

String[] params = new String[5];

對于使用了設(shè)計模式的類在命名時要體現(xiàn)

//正面教材

class OrderFactory:工廠模式

class LoginProy:代理模式

class ResourceObserver:觀察者模式

對于long長整型的定義禁止使用l,要使用L

//反面教材

private longa = 2l;//像這樣的定義在一定程度上會與數(shù)字21混淆

類內(nèi)部定義方法的順序(推薦)

公有方法或保護方法 > 私有方法 > getter/setter 方法

說明:公有方法是類的調(diào)用者和維護者最關(guān)心的方法,首屏展示最好;保護方法雖然只是子類

關(guān)心,也可能是“模板設(shè)計模式”下的核心方法;而私有方法外部一般不需要特別關(guān)心,是一個

黑盒實現(xiàn);因為方法信息價值較低,所有Service和DAO的getter/setter方法放在類體最

后。

接口的名字要以Impl結(jié)尾

如InterfaceMethodNameStyleImpl

接口的名字也可以如此命名:以I(大寫的i)開頭,以Service結(jié)尾,如IUserService

接口中的方法和屬性不要加任何的修飾符

//反面教材

public void f();

public String xxx = "hello world";

//正面教材

void update();

Object的equals方法容易拋空指針異常,應(yīng)使用常量或確定有值的對象來調(diào)用equals


所有的相同類型的包裝類對象之間值的比較,全部使用equals方法比較

說明:對于Integer var= ?在-128至127范圍內(nèi)的賦值,Integer對象是在IntegerCache.cache產(chǎn)生,會復(fù)用已有對象,這個區(qū)間內(nèi)的Integer值可以直接使用==進行判斷,但是這個區(qū)間之外的所有數(shù)據(jù),都會在堆上產(chǎn)生,并不會復(fù)用已有對象,這是一個大坑,推薦使用equals方法進行判斷。


循環(huán)體內(nèi),字符串的連接方式,使用StringBuilder的append方法進行擴展。

說明:反編譯出的字節(jié)碼文件顯示每次循環(huán)都會new出一個StringBuilder對象,然后進行append操作,最后通過toString方法返回String對象,造成內(nèi)存資源浪費。

類成員與方法訪問控制從嚴(yán)

1)如果不允許外部直接通過new來創(chuàng)建對象,那么構(gòu)造方法必須是private。2)工具類不允許有public或default構(gòu)造方法。

3)類非static成員變量并且與子類共享,必須是protected。

4)類非static成員變量并且僅在本類使用,必須是private。

5)類static成員變量如果僅在本類使用,必須是private。

6)若是static成員變量,必須考慮是否為final。

7)類成員方法只供類內(nèi)部調(diào)用,必須是private。

8)類成員方法只對繼承類公開,那么限制為protected。

說明:任何類、方法、參數(shù)、變量,嚴(yán)控訪問范圍。過于寬泛的訪問范圍,不利于模塊解耦。

思考:如果是一個private的方法,想刪除就刪除,可是一個public的service方法,或者

一個public的成員變量,刪除一下,不得手心冒點汗嗎?變量像自己的小孩,盡量在自己的

視線內(nèi),變量作用域太大,如果無限制的到處跑,那么你會擔(dān)心的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容