一俩莽、 不要在常量和變量中出現(xiàn)易混淆的字母
- 包名全小寫
- 類名首字母全大寫
- 常量全部大寫并用下劃線分割
- 變量采用駝峰式命名
- 小寫字母l涨共、大寫字母O盡量不要和數(shù)字混用
- 必須一起用的時(shí)候引有,字母“l(fā)”務(wù)必用大寫拆祈,字母“O”則添加注釋
二衡瓶、莫讓常量蛻變成變量
常量必須在編譯期間確定其值优质,不應(yīng)該在運(yùn)行期更改舌劳。
甭想著使用常量會(huì)變的這個(gè)功能來實(shí)現(xiàn)序列號(hào)算法帚湘、隨機(jī)種子生成,除非這真的是項(xiàng)目中的唯一方案甚淡,否則放棄吧大诸。務(wù)必讓常量的值在運(yùn)行期保持不變。
三、三元操作符的類型必須一致
保證三元操作符中的兩個(gè)操作數(shù)類型一致资柔,可以減少可能錯(cuò)誤的發(fā)生焙贷。
四、避免帶有變長(zhǎng)參數(shù)的方法重載
慎重考慮變長(zhǎng)參數(shù)的方法重載
五建邓、別讓null值和空值威脅到變長(zhǎng)方法
六盈厘、覆寫變長(zhǎng)方法也循規(guī)蹈矩
覆寫必須滿足的條件:
- 重寫方法不能縮小訪問權(quán)限
- 參數(shù)列表必須與被重寫方法相同
- 返回類型必須與被重寫方法的返回值類型相同或者是其子類
- 重寫方法不能拋出新的異常,或者超出父類范圍的異常官边,但是可以拋出更少沸手、更有限的異常,或者不拋出異常注簿。
覆寫的方法參數(shù)與父類相同契吉,不僅僅是類型,數(shù)量诡渴,還包括顯示形式捐晶。
七、 警惕自增的陷阱
count = 0;
for(i=0;i<10;i++){
count = count ++
}
System.out.println(count); //輸出結(jié)果為0妄辩,不是10
Java中對(duì)自加是這樣處理的:
首先把count的值(而不是引用)拷貝到一個(gè)臨時(shí)變量區(qū)惑灵,然后對(duì)count變量加1,最后返回臨時(shí)變量區(qū)的值眼耀。count=count++可以按照以下代碼來理解:
public static int mockAdd(int count){
//先保存初始值
int temp = count;
//做自增操作
count = count + 1;
//返回原始值
return temp;
}
該問題在不同語言環(huán)境有不同的實(shí)現(xiàn)英支,C++中
count = count++
與
count ++
是等效的,而PHP中則保持著和Java相同的處理方式哮伟。
八干花、不要讓舊語法困擾你
九、少用靜態(tài)導(dǎo)入
對(duì)于靜態(tài)導(dǎo)入楞黄,一般要遵循兩個(gè)規(guī)則:
- 不使用*(星號(hào))通配符池凄,除非是導(dǎo)入靜態(tài)常量類(只包含常量的類或接口)
- 方法名是具有明確、清晰表象意義的工具類鬼廓。
十肿仑、不要在本類中覆蓋靜態(tài)導(dǎo)入的變量和方法
編譯器“最短路徑”原則:
如果能在本類中查找到的變量、方法碎税、常量柏副,就不會(huì)到其他包或父類,接口中查找蚣录,以確保本類中的屬性、方法優(yōu)先眷篇。
因此萎河,要變更一個(gè)被靜態(tài)導(dǎo)入的方法,最好的辦法是在原始類中重構(gòu),而不是在本類中覆蓋虐杯。