<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA進(jìn)行式
    讓我們把JAVA進(jìn)行到底!
    posts - 13,comments - 21,trackbacks - 0
             今天把以前收集的“java  編碼規(guī)范”找出來(lái)讀一讀,寫了幾個(gè)月代碼了,雖然零零星星知道一些關(guān)于java的編碼規(guī)范,可是不是很系統(tǒng),昨天看到組員寫的代碼,直觀感覺(jué)上很不舒服,覺(jué)得寫得很不符合編碼規(guī)范,看上去不好看,閱讀起來(lái)很困難,想給他講一講,突然意識(shí)到自己也不是很說(shuō)的清楚,OK,來(lái)看看人家是怎么闡述這個(gè)編碼規(guī)范問(wèn)題吧!         
             那么什么是編碼規(guī)范呢?
             編碼規(guī)范就是使用一種語(yǔ)言編寫代碼時(shí),要遵守的一些約定俗成,或是長(zhǎng)期經(jīng)驗(yàn)總結(jié)而成的規(guī)矩,這些規(guī)矩并不是一定要執(zhí)行的,也就是說(shuō),不執(zhí)行它,程序照樣能編譯通過(guò),照樣能運(yùn)行起來(lái),那么我們?yōu)槭裁匆プ袷厮兀窟@是因?yàn)槲覀兙帉懙某绦虿⒉粌H僅是只給自己一個(gè)人看的,在現(xiàn)代軟件開發(fā)中,往往是由多個(gè)人共同完成軟件的開發(fā)工作,由一個(gè)人獨(dú)立完成大型軟件的開發(fā)工作,幾乎是不可能的。而且在軟件開發(fā)完成,進(jìn)入到軟件維護(hù)階段后,對(duì)軟件的維護(hù)工作也很可能是由其他人員來(lái)進(jìn)行。那么,編寫出的代碼就需要多個(gè)人去閱讀。如果每個(gè)人都按照自己的習(xí)慣去寫代碼,就會(huì)給其他讀代碼的人造成很大的困擾,從而影響他對(duì)程序的理解、判斷,影響他對(duì)程序的所進(jìn)行的維護(hù)和改進(jìn)工作。那么有了編碼規(guī)范,大家都遵循統(tǒng)一的規(guī)范去做,就會(huì)大大提高代碼的可讀性,使開發(fā)人員能夠迅速而徹底的理解代碼,從而提高工作效率。另外,遵守編碼規(guī)范對(duì)于我們編寫代碼的人來(lái)說(shuō),也是有利的,隨著程序的復(fù)雜程度的加深,我們所編寫的代碼行逐步增多,如果沒(méi)有在一開始嚴(yán)格遵守規(guī)范,而是隨性編寫,那么在后期也會(huì)對(duì)我們自己閱讀代碼造成影響,而且更為嚴(yán)重的是,降低了代碼的健壯性,使代碼變得容易出錯(cuò),而不易維護(hù)了。
             基于上述原因,做為一個(gè)合格程序員,嚴(yán)格遵守編碼規(guī)范是基本條件。
             先來(lái)說(shuō)說(shuō)“程序編寫規(guī)范”,實(shí)際上這個(gè)標(biāo)題是“java編碼規(guī)范”的第一章節(jié)的標(biāo)題,看了內(nèi)容,感覺(jué)不太恰當(dāng),可是一時(shí)又不知道改什么名好,就照著他的來(lái)吧。
             1、exit() 除了在 main() 中可以被調(diào)用外,其他的地方不應(yīng)該被調(diào)用。
             這樣做是因?yàn)椴唤o任何代碼截獲退出的機(jī)會(huì)。比如,一個(gè)類似后臺(tái)服務(wù)的程序不應(yīng)該因?yàn)槟骋粋€(gè)庫(kù)模塊決定了要退出就退出。
             2、聲明的錯(cuò)誤應(yīng)該拋出一個(gè)RuntimeException或者其派生的異常。頂層的main()函數(shù)應(yīng)該截獲所有的異常,并且打印(或者記錄在日志中)在屏幕上。 
             3、java使用成熟的后臺(tái)垃圾收集技術(shù)來(lái)代替引用計(jì)數(shù)。但是,請(qǐng)記住,java的垃圾收集技術(shù)只會(huì)對(duì)內(nèi)存中的“垃圾”進(jìn)行清理,而不會(huì)對(duì)其他資源,諸如:數(shù)據(jù)庫(kù)、磁盤、打印機(jī)等進(jìn)行清理工作。因此你必須在使用完這些對(duì)象的實(shí)例以后進(jìn)行清場(chǎng)工作。比如:
             FileOutputStream fos = new FileOutputStream(projectFile);
             project.save(fos, "IDE Project File"); 
             fos.close();      //對(duì)文件輸出流對(duì)象進(jìn)行關(guān)閉(清場(chǎng)工作)
             4、Clone下面是一種有用的方法:
            implements Cloneable
            public  Object clone()
            {
                try 
                {
                     ThisClass obj = (ThisClass)super.clone();
                     obj.field1 = (int[])field1.clone();
                     obj.field2 = field2;
                     return obj;
                } 
                catch(CloneNotSupportedException e) 
                {
                     throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());
                }
             }
             這里……我不太看得明白他所寫的意思,對(duì)于clone()方法我大概知道它是java的根類Object中的一個(gè)方法,其作用是創(chuàng)建并返回一個(gè)當(dāng)前對(duì)象的拷貝,即是“克隆”一個(gè)和當(dāng)前對(duì)象一模一樣的另一個(gè)對(duì)象。那么Cloneable是什么?查了API幫助,知道了,Cloneable是一個(gè)接口,只有實(shí)現(xiàn)了這個(gè)Cloneable接口的類的實(shí)例才可以用繼承自O(shè)bject類的clone()方法進(jìn)行“克隆”,沒(méi)有實(shí)現(xiàn)這個(gè)接口的類的實(shí)例若調(diào)用clone()方法,則會(huì)拋出“CloneNotSupportedException”異常。不過(guò),好奇怪,查看了它的源代碼,僅僅有一個(gè)接口名字,沒(méi)有聲明任何的方法或是常量,基本類庫(kù)中為什么會(huì)有這樣一個(gè)接口哩?既然所有的類都直接或間接繼承自O(shè)bject類,那為什么還要用一個(gè)Cloneable接口來(lái)限制其子類能否進(jìn)行“克隆”操作哩?現(xiàn)在還弄不明白。
            
     3、final 類,絕對(duì)不要因?yàn)樾阅艿脑驅(qū)㈩惗x為 final 的(除非程序的框架要求)。
             最好在類文檔中注明一個(gè)類目前不能被繼承,而不要將它定義為 final 的。因?yàn)闆](méi)有人可以保證會(huì)不會(huì)由于什么原因需要繼承它。(那么,盡量少用final類,呵呵,到目前為止我還沒(méi)用到過(guò)final類,真想知道什么時(shí)候一定會(huì)用到final類,好象沒(méi)有地方需要呀)
              4、訪問(wèn)類的成員變量,大部分的類成員變量應(yīng)該定義為 protected 的來(lái)防止繼承類使用他們。
              這里……我又不明白了,記得學(xué)java的訪問(wèn)權(quán)限修飾符時(shí),protected修飾的類成員,僅在類內(nèi)和類的派生類中可見(jiàn),把類成員定義為protected,怎么能夠防止繼承類(派生類)使用哩?如果定義為private,才可能不被繼承類使用吧?
    我錯(cuò)了嗎?
             5、對(duì)于數(shù)組的聲明,要用“int[] packets”,而不是“int packets[]”,后一種永遠(yuǎn)也不要用。
             這個(gè)……,對(duì)于后一種,java中好象沒(méi)有硬性規(guī)定不可以用
    (C#中倒是只承認(rèn)前一種聲明數(shù)組的形式),但寫成前一種形式,更具意義一些。
    posted on 2005-12-11 15:58 水秀清靈 閱讀(420) 評(píng)論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)筆記
    主站蜘蛛池模板: 亚洲精品自在线拍| 亚洲av无码一区二区乱子伦as| 无码欧精品亚洲日韩一区| 日韩在线观看免费| 亚洲色一色噜一噜噜噜| 青青青视频免费观看| 国产午夜免费秋霞影院| 美女黄色毛片免费看| 亚洲?V乱码久久精品蜜桃| 美女被爆羞羞网站在免费观看| 免费在线观看亚洲| 色噜噜的亚洲男人的天堂| 国产一级一片免费播放i| 校园亚洲春色另类小说合集 | 免费一级特黄特色大片| 凹凸精品视频分类国产品免费| 亚洲成av人无码亚洲成av人| 国产极品粉嫩泬免费观看| 无码毛片一区二区三区视频免费播放| 亚洲AV无码专区日韩| xxxxx做受大片在线观看免费| 国内精品久久久久久久亚洲| 久久精品私人影院免费看| 亚洲精品美女视频| 成人免费无毒在线观看网站| 亚洲精品色在线网站| 人人狠狠综合久久亚洲88| 最近中文字幕完整版免费高清| 亚洲a视频在线观看| 国产免费无遮挡精品视频| 中文字幕无线码中文字幕免费| 91亚洲精品第一综合不卡播放| 无人影院手机版在线观看免费| 色www免费视频| 亚洲第一中文字幕| 日日夜夜精品免费视频| 国产免费阿v精品视频网址| 亚洲国产精品久久久久秋霞影院| 午夜视频免费成人| 中文字幕免费不卡二区| 亚洲AV无码成人网站在线观看|