版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
,,,,,
,CodeReviewCheckList-Java,,,
,序號(hào),分類,檢查項(xiàng),備注
,1,定義,每個(gè)Java文件只包含一個(gè)public類或者接口,
,2,,第一行非注釋的語(yǔ)句應(yīng)該為一個(gè)package語(yǔ)句(如果存在的話).之后應(yīng)該是import語(yǔ)句,
,3,布局,"一行不要超過(guò)120個(gè)字符,源代碼一般不會(huì)超過(guò)這個(gè)寬度,并導(dǎo)致無(wú)法完整顯示,但這一設(shè)置也可以靈活調(diào)整。在任何情況下,超長(zhǎng)的語(yǔ)句應(yīng)該在一個(gè)逗號(hào)或者一個(gè)操作符后折行。一條語(yǔ)句折行后,應(yīng)該比原來(lái)的語(yǔ)句再縮進(jìn)4個(gè)字符。",
,4,,"一個(gè)表達(dá)式不能被放在一行中時(shí),將它分成多行例如:
foo(long_expression1,long_expression2,
long_expression3);",
,5,,函數(shù)代碼行數(shù)的限制:200行,
,6,,"左括號(hào)和后一個(gè)字符之間不應(yīng)該出現(xiàn)空格,同樣,右括號(hào)和前一個(gè)字符之間也不應(yīng)該出現(xiàn)空格。不要在語(yǔ)句中使用無(wú)意義的括號(hào).括號(hào)只應(yīng)該為達(dá)到某種目的而出現(xiàn)在源代碼中。下面的例子說(shuō)明錯(cuò)誤和正確的用法:
if((i)=42)//錯(cuò)誤-括號(hào)毫無(wú)意義
if(i==42)//正確-的確需要括號(hào)
",
,7,注釋,"所有的Java文件都應(yīng)該在類定義前編寫類注釋,注釋包括了類名,版本,日期和版權(quán)提示",
,8,,比較復(fù)雜的代碼段需要描述它的實(shí)現(xiàn)原理,且不要以直接翻譯代碼的形式描述。,
,9,,"恰當(dāng)?shù)氖褂盟姆N樣式的實(shí)現(xiàn)注釋:塊,單行,尾,和行尾注釋
例如:
塊注釋
/*
*Thisisablockcomment.
*Eachlineisprecededbyanasterisks.
*/
單行注釋
if(condition){
/*Shortdescriptionaboutthefollowingstatments*/
statements;
}
尾注釋
if(condition){
stateme;//注釋",
,10,,"每個(gè)聲明應(yīng)該單獨(dú)占一行并必須由一個(gè)尾注釋.使用tabs分隔開(kāi)來(lái)數(shù)據(jù)類型,標(biāo)識(shí)符,和注釋字段例如:
intlevel;//indentationlevel
intsize;//sizeoftable
ObjectcurrentEntry;//currentlyselectedtableentry",
,11,命名慣例,"類名要簡(jiǎn)單準(zhǔn)確.避免使用不易理解的縮寫詞和縮寫符,由名詞組成,每個(gè)單詞的第一個(gè)字母大寫,例如:StringBuffer,Vector。
建議在某寫特定類型的類名后加上該類型的說(shuō)明,以便讓類的使用者一目了然。
例如:Applet——UnitDetachApplet
Servlet——UnitDetachServlet
Dialog——CardAssQueryDialog
",
,12,,接口名使用與類名一樣的單詞首字母大寫規(guī)則,
,13,,"方法名應(yīng)該為動(dòng)詞或動(dòng)詞短語(yǔ),使用多個(gè)單詞場(chǎng)合的時(shí)候第一個(gè)單詞的第一個(gè)字母小寫,其他單詞的第一個(gè)字母大寫.例:
run();isUpperCase();getBackground();findTotalCost(intYears);",
,14,,"參數(shù)的名字必須和變量的命名規(guī)范一致。使用有意義的參數(shù)命名,如果可能的話,使用和要賦值的字段一樣的名字。例如:
publicvoidsetCounter(intsize)
{
this.size=size;
}
",
,15,,staticfinal基本類型常量名中的所有字母都應(yīng)該大寫(這樣便可標(biāo)志出它們屬于編譯期的常數(shù))。,
,16,,變量名的大小寫規(guī)則與方法名的大小寫規(guī)則相同,變量名應(yīng)該充分的反映出所定義變量的意義,由名詞組成,
,17,,"包的名字應(yīng)該都是由小寫單詞組成。它們?nèi)际切懽帜?,即便中間的單詞亦是如此。對(duì)于域名擴(kuò)展名稱,如com,org,net或者edu等,全部都應(yīng)小寫。
例如:packagecom.neusoft.unieap.ui;
包名必須能概括包內(nèi)所有成員類的共有特性。
建議:在多級(jí)包名中,下級(jí)包名不要重復(fù)包含上級(jí)包名的含義。
例如:有這樣一個(gè)包:com.neusoft.elarp.business.alteration.employeealteration,它的命名就不是十分合理,因?yàn)樵谌?jí)包名中已經(jīng)聲明了alteration,所以在四級(jí)包名中就沒(méi)有必要重復(fù)定義它。合理的定義應(yīng)為com.neusoft.elarp.business.alteration.employee,這與多重路徑的命名規(guī)則是一樣的。
",
,18,編碼規(guī)則,禁止用一條語(yǔ)句對(duì)幾個(gè)變量賦值,
,19,,對(duì)于復(fù)雜的表達(dá)式使用圓括號(hào)表示它們之間的邏輯關(guān)系,
,20,,"boolean類型之間的變量或表達(dá)式禁止進(jìn)行比較,例如:
錯(cuò)誤:if(返回boolean類型的表達(dá)式==true)
正確:if(返回boolean類型的表達(dá)式)",
,21,,"import中禁止引入*的形式
保證所有引入的類都被使用。原因:如果不引入確切的類將很難理解當(dāng)前類的上下文關(guān)系及其相關(guān)性。
",
,22,,異常的捕獲形式:將連續(xù)的小的“try-catch”塊合并到一起。由于這些塊將代碼分割成小的、各自獨(dú)立的片斷,所以會(huì)妨礙編譯器進(jìn)行優(yōu)化。但是,若過(guò)份熱衷于刪除異常處理模塊,也可能造成代碼健壯程度的下降,所以在合并的同時(shí)需要考慮程序的穩(wěn)定性。,
,23,,"運(yùn)算語(yǔ)句的性能優(yōu)化:見(jiàn)下表(標(biāo)準(zhǔn)時(shí)間=語(yǔ)句執(zhí)行時(shí)間/本地賦值時(shí)間)
運(yùn)算示例標(biāo)準(zhǔn)時(shí)間
本地賦值i=n;1.0
實(shí)例賦值this.i=n;1.2
int增值i++;1.5
byte增值b++;2.0
short增值s++;2.0
float增值f++;2.0
double增值d++;2.0
空循環(huán)while(true)n++;2.0
三元表達(dá)式(x<0)?-x:x;2.2
算術(shù)調(diào)用Math.abs(x);2.5
數(shù)組賦值a[0]=n;2.7
Long增值l++;3.5
方法調(diào)用funct();5.9
Throw或者catch違例try{throwe;}320
同步方法調(diào)用synchMethod();570
新建對(duì)象newObject();980
新建數(shù)組newint[10];3100
",
,24,,"線程的使用:
1防止過(guò)多的同步
不必要的同步常常會(huì)造成程序性能的下降。因此,如果程序是單線程,則一定不要使用同步。
2避免同步整個(gè)代碼段
對(duì)某個(gè)方法或函數(shù)進(jìn)行同步比對(duì)整個(gè)代碼段進(jìn)行同步的性能要好。因?yàn)榇a段的同步牽涉的范圍比對(duì)某個(gè)方法或函數(shù)進(jìn)行同步廣。
3對(duì)每個(gè)對(duì)象使用多”鎖”的機(jī)制來(lái)增大并發(fā)
一般每個(gè)對(duì)象都只有一個(gè)”鎖”,這就表明如果兩個(gè)線程執(zhí)行一個(gè)對(duì)象的兩個(gè)不同的同步方法時(shí),會(huì)發(fā)生”死鎖”。即使這兩個(gè)方法并不共享任何資源。為了避免這個(gè)問(wèn)題,可以對(duì)一個(gè)對(duì)象實(shí)行”多鎖”的機(jī)制。
",
,25,,"break:
遍歷數(shù)組、向量或者樹(shù)結(jié)構(gòu)時(shí),如果滿足條件的元素找到,一定要使用break語(yǔ)句退出循環(huán)。
",
,26,,"循環(huán)體內(nèi)避免構(gòu)建新對(duì)象:
如果在循環(huán)體內(nèi)用到新對(duì)象,需要在循環(huán)體開(kāi)始以前構(gòu)建好該對(duì)象。由標(biāo)準(zhǔn)時(shí)間表可以看出構(gòu)建對(duì)象有很大的系統(tǒng)消耗,并且在一次循環(huán)中還要清除掉該對(duì)象,下次循環(huán)再重新構(gòu)建。",
,27,,數(shù)據(jù)庫(kù)連接、數(shù)據(jù)庫(kù)事務(wù)對(duì)象、輸入輸出流在使用后一定要關(guān)閉。,
,28,,異常的處理要全面,不要將影響到業(yè)務(wù)操作的異常拋給容器來(lái)處理。,
,29,,"靜態(tài)方法的使用:
錯(cuò)誤:
XXXFactoryf=newXXXFactory();
f.getXXX();
正確:
XXXFactory.getXXX();",
,30,,"循環(huán)語(yǔ)句的使用:
錯(cuò)誤:
for(inti=0;i<list.size();i++),list.si
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版跨境電商平臺(tái)傭金比例調(diào)整合同3篇
- 二零二五版?zhèn)€人教育貸款擔(dān)保合同模板3篇
- 二零二五年建筑裝修幫工雇傭合同2篇
- 二零二五版寄賣合同范本:藝術(shù)品寄售代理中介服務(wù)協(xié)議2篇
- 二零二五版辦公設(shè)備智能化升級(jí)改造合同5篇
- 二零二五版橋梁工程勞務(wù)分包合同模板6篇
- 二零二五版職工住房借款與社區(qū)文化活動(dòng)支持合同3篇
- 二零二五年度黃牛養(yǎng)殖與屠宰行業(yè)購(gòu)銷法律法規(guī)遵守合同3篇
- 二零二五年鋁藝門安裝與外觀設(shè)計(jì)承包合同3篇
- 二零二五年度電商代發(fā)貨及品牌授權(quán)合同2篇
- 大型活動(dòng)LED屏幕安全應(yīng)急預(yù)案
- 舞蹈課家長(zhǎng)會(huì)
- 2024年內(nèi)蒙古包頭市中考道德與法治試卷
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高二上學(xué)期期中考試地理試卷(含答案)
- 自來(lái)水質(zhì)量提升技術(shù)方案
- 金色簡(jiǎn)約蛇年年終總結(jié)匯報(bào)模板
- 農(nóng)用地土壤環(huán)境質(zhì)量類別劃分技術(shù)指南(試行)(環(huán)辦土壤2017第97號(hào))
- 反向開(kāi)票政策解讀課件
- 工程周工作計(jì)劃
- 房地產(chǎn)銷售任務(wù)及激勵(lì)制度
- 六年級(jí)語(yǔ)文下冊(cè)14文言文二則《學(xué)弈》課件
評(píng)論
0/150
提交評(píng)論