黑豆熊——BlogJava

          面對(duì)挑戰(zhàn),我告訴自己:面對(duì)是勇氣,積極面對(duì)是態(tài)度,堅(jiān)持積極面對(duì)是毅力!

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          最新評(píng)論

          JAVA代碼編程規(guī)范

           

          類(lèi)的成員變量定義

          大部分類(lèi)的成員變量應(yīng)該定義為protected來(lái)防止繼承類(lèi)使用他們。

          數(shù)組標(biāo)識(shí)

          要用"int[]packets",而不是"intpackets[]",后一種永遠(yuǎn)也不要用。

          成員變量與函數(shù)內(nèi)局部變量用this

          publicvoidsetPackets(int[]packets){this.packets=packets;}//一般函數(shù)

          CounterSet(intsize){this.size=size;}//構(gòu)造函數(shù)

          可讀性

          避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來(lái)替代。不要使用難懂的技巧性很高的語(yǔ)句。

          源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。

          可移植性

          BorlandJbulider不喜歡synchronized這個(gè)關(guān)鍵字,如果你的斷點(diǎn)設(shè)在這些關(guān)鍵字的作用域內(nèi)的話(huà),調(diào)試的時(shí)候你會(huì)發(fā)現(xiàn)的斷點(diǎn)會(huì)到處亂跳,讓你不知所措。除非必須,盡量不要使用。

          換行

          如果要換行的話(huà),盡量用println來(lái)代替在字符串中使用"\n"

          你不要這樣:System.out.print("Hello,world!\n");

          要這樣:System.out.println("Hello,world!");

          或者構(gòu)造一個(gè)帶換行符的字符串,至少要象這樣:

          Stringnewline=System.getProperty("line.separator");

          System.out.print("Helloworld"+newline);

          PrintStream

          PrintStream已經(jīng)被不贊成(deprecated)使用,用PrintWrite來(lái)代替她。

          排版規(guī)范

          關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭瘛?/span>

          相對(duì)獨(dú)立的程序塊與塊之間加空行。

          較長(zhǎng)的語(yǔ)句、表達(dá)式等要分成多行書(shū)寫(xiě)。

          劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn),使排版整齊,語(yǔ)句可讀。

          長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。

          循環(huán)、判斷等語(yǔ)句中若有較長(zhǎng)的表達(dá)式或語(yǔ)句,則要進(jìn)行適應(yīng)的劃分。

          若函數(shù)或過(guò)程中的參數(shù)較長(zhǎng),則要進(jìn)行適當(dāng)?shù)膭澐帧?/span>

          不允許把多個(gè)短語(yǔ)句寫(xiě)在一行中,即一行只寫(xiě)一條語(yǔ)句。

          函數(shù)或過(guò)程的開(kāi)始、結(jié)構(gòu)的定義及循環(huán)、判斷等語(yǔ)句中的代碼都要采用縮進(jìn)風(fēng)格。

          編寫(xiě)程序塊時(shí)‘{’‘}’應(yīng)各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊。在函數(shù)體的開(kāi)始、類(lèi)的定義、結(jié)構(gòu)的定義、枚舉的定義以及iffordowhileswitchcase語(yǔ)句中的程序都要采用如上的縮進(jìn)方式。

          性能

          在寫(xiě)代碼的時(shí)候,從頭至尾都應(yīng)該考慮性能問(wèn)題。這不是說(shuō)時(shí)間都應(yīng)該浪費(fèi)在優(yōu)化代碼上,而是我們時(shí)刻應(yīng)該提醒自己要注意代碼的效率。比如:如果沒(méi)有時(shí)間來(lái)實(shí)現(xiàn)一個(gè)高效的算法,那么我們應(yīng)該在文檔中記錄下來(lái),以便在以后有空的時(shí)候再來(lái)實(shí)現(xiàn)她。

          不是所有的人都同意在寫(xiě)代碼的時(shí)候應(yīng)該優(yōu)化性能這個(gè)觀點(diǎn)的,他們認(rèn)為性能優(yōu)化的問(wèn)題應(yīng)該在項(xiàng)目的后期再去考慮,也就是在程序的輪廓已經(jīng)實(shí)現(xiàn)了以后。

          不要在循環(huán)中構(gòu)造和釋放對(duì)象

          使用StringBuffer對(duì)象

          在處理String的時(shí)候要盡量使用StringBuffer類(lèi),StringBuffer類(lèi)是構(gòu)成String類(lèi)的基礎(chǔ)。String類(lèi)將StringBuffer類(lèi)封裝了起來(lái),(以花費(fèi)更多時(shí)間為代價(jià))為開(kāi)發(fā)人員提供了一個(gè)安全的接口。當(dāng)我們?cè)跇?gòu)造字符串的時(shí)候,我們應(yīng)該用StringBuffer來(lái)實(shí)現(xiàn)大部分的工作,當(dāng)工作完成后將StringBuffer對(duì)象再轉(zhuǎn)換為需要的String對(duì)象。比如:如果有一個(gè)字符串必須不斷地在其后添加許多字符來(lái)完成構(gòu)造,那么我們應(yīng)該使用StringBuffer對(duì)象和她的append()方法。如果我們用String對(duì)象代替StringBuffer對(duì)象的話(huà),會(huì)花費(fèi)許多不必要的創(chuàng)建和釋放對(duì)象的CPU時(shí)間。

          避免太多或不必要的使用synchronized關(guān)鍵字

          ,應(yīng)該在必要的時(shí)候再使用她,這是個(gè)避免死鎖的好方法。

          代碼測(cè)試、維護(hù)

          1.單元測(cè)試要求至少達(dá)到語(yǔ)句覆蓋。

          2.單元測(cè)試開(kāi)始要跟蹤每一條語(yǔ)句,并觀察數(shù)據(jù)流及變量的變化。

          3.清理、整理或優(yōu)化后的代碼要經(jīng)過(guò)審查及測(cè)試。

          4.代碼版本升級(jí)要經(jīng)過(guò)嚴(yán)格測(cè)試。

           

          posted on 2008-11-09 11:21 黑豆熊 閱讀(275) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 屯昌县| 米脂县| 镇平县| 蒙自县| 盐池县| 阿鲁科尔沁旗| 台前县| 裕民县| 柞水县| 突泉县| 曲麻莱县| 五寨县| 铁力市| 交口县| 高碑店市| 通州区| 黔东| 富蕴县| 高要市| 伊春市| 通榆县| 孟村| 长武县| 扎鲁特旗| 谢通门县| 阳信县| 开鲁县| 辉县市| 大城县| 枣庄市| 桃园市| 友谊县| 百色市| 阿克陶县| 通河县| 庆安县| 宁安市| 开原市| 商都县| 鄂伦春自治旗| 奇台县|