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

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

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

    JAVA進行式
    讓我們把JAVA進行到底!
    posts - 13,comments - 21,trackbacks - 0
             今天把以前收集的“java  編碼規范”找出來讀一讀,寫了幾個月代碼了,雖然零零星星知道一些關于java的編碼規范,可是不是很系統,昨天看到組員寫的代碼,直觀感覺上很不舒服,覺得寫得很不符合編碼規范,看上去不好看,閱讀起來很困難,想給他講一講,突然意識到自己也不是很說的清楚,OK,來看看人家是怎么闡述這個編碼規范問題吧!         
             那么什么是編碼規范呢?
             編碼規范就是使用一種語言編寫代碼時,要遵守的一些約定俗成,或是長期經驗總結而成的規矩,這些規矩并不是一定要執行的,也就是說,不執行它,程序照樣能編譯通過,照樣能運行起來,那么我們為什么要去遵守它呢?這是因為我們編寫的程序并不僅僅是只給自己一個人看的,在現代軟件開發中,往往是由多個人共同完成軟件的開發工作,由一個人獨立完成大型軟件的開發工作,幾乎是不可能的。而且在軟件開發完成,進入到軟件維護階段后,對軟件的維護工作也很可能是由其他人員來進行。那么,編寫出的代碼就需要多個人去閱讀。如果每個人都按照自己的習慣去寫代碼,就會給其他讀代碼的人造成很大的困擾,從而影響他對程序的理解、判斷,影響他對程序的所進行的維護和改進工作。那么有了編碼規范,大家都遵循統一的規范去做,就會大大提高代碼的可讀性,使開發人員能夠迅速而徹底的理解代碼,從而提高工作效率。另外,遵守編碼規范對于我們編寫代碼的人來說,也是有利的,隨著程序的復雜程度的加深,我們所編寫的代碼行逐步增多,如果沒有在一開始嚴格遵守規范,而是隨性編寫,那么在后期也會對我們自己閱讀代碼造成影響,而且更為嚴重的是,降低了代碼的健壯性,使代碼變得容易出錯,而不易維護了。
             基于上述原因,做為一個合格程序員,嚴格遵守編碼規范是基本條件。
             先來說說“程序編寫規范”,實際上這個標題是“java編碼規范”的第一章節的標題,看了內容,感覺不太恰當,可是一時又不知道改什么名好,就照著他的來吧。
             1、exit() 除了在 main() 中可以被調用外,其他的地方不應該被調用。
             這樣做是因為不給任何代碼截獲退出的機會。比如,一個類似后臺服務的程序不應該因為某一個庫模塊決定了要退出就退出。
             2、聲明的錯誤應該拋出一個RuntimeException或者其派生的異常。頂層的main()函數應該截獲所有的異常,并且打印(或者記錄在日志中)在屏幕上。 
             3、java使用成熟的后臺垃圾收集技術來代替引用計數。但是,請記住,java的垃圾收集技術只會對內存中的“垃圾”進行清理,而不會對其他資源,諸如:數據庫、磁盤、打印機等進行清理工作。因此你必須在使用完這些對象的實例以后進行清場工作。比如:
             FileOutputStream fos = new FileOutputStream(projectFile);
             project.save(fos, "IDE Project File"); 
             fos.close();      //對文件輸出流對象進行關閉(清場工作)
             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());
                }
             }
             這里……我不太看得明白他所寫的意思,對于clone()方法我大概知道它是java的根類Object中的一個方法,其作用是創建并返回一個當前對象的拷貝,即是“克隆”一個和當前對象一模一樣的另一個對象。那么Cloneable是什么?查了API幫助,知道了,Cloneable是一個接口,只有實現了這個Cloneable接口的類的實例才可以用繼承自Object類的clone()方法進行“克隆”,沒有實現這個接口的類的實例若調用clone()方法,則會拋出“CloneNotSupportedException”異常。不過,好奇怪,查看了它的源代碼,僅僅有一個接口名字,沒有聲明任何的方法或是常量,基本類庫中為什么會有這樣一個接口哩?既然所有的類都直接或間接繼承自Object類,那為什么還要用一個Cloneable接口來限制其子類能否進行“克隆”操作哩?現在還弄不明白。
            
     3、final 類,絕對不要因為性能的原因將類定義為 final 的(除非程序的框架要求)。
             最好在類文檔中注明一個類目前不能被繼承,而不要將它定義為 final 的。因為沒有人可以保證會不會由于什么原因需要繼承它。(那么,盡量少用final類,呵呵,到目前為止我還沒用到過final類,真想知道什么時候一定會用到final類,好象沒有地方需要呀)
              4、訪問類的成員變量,大部分的類成員變量應該定義為 protected 的來防止繼承類使用他們。
              這里……我又不明白了,記得學java的訪問權限修飾符時,protected修飾的類成員,僅在類內和類的派生類中可見,把類成員定義為protected,怎么能夠防止繼承類(派生類)使用哩?如果定義為private,才可能不被繼承類使用吧?
    我錯了嗎?
             5、對于數組的聲明,要用“int[] packets”,而不是“int packets[]”,后一種永遠也不要用。
             這個……,對于后一種,java中好象沒有硬性規定不可以用
    (C#中倒是只承認前一種聲明數組的形式),但寫成前一種形式,更具意義一些。
    posted on 2005-12-11 15:58 水秀清靈 閱讀(427) 評論(0)  編輯  收藏 所屬分類: 學習筆記
    主站蜘蛛池模板: 一级黄色毛片免费看| 国产成人亚洲综合在线| 亚洲天堂电影在线观看| 亚洲一卡2卡3卡4卡5卡6卡| 青草青草视频2免费观看| 99爱在线观看免费完整版| 好爽…又高潮了免费毛片| 久久亚洲精品无码播放| 67194在线午夜亚洲| 国产在线国偷精品免费看| 美女羞羞视频免费网站| 国产精品免费看久久久无码| 亚洲精品V欧洲精品V日韩精品| 亚洲图片中文字幕| 免费精品人在线二线三线区别| 又粗又大又猛又爽免费视频| 亚洲中文字幕久在线| 伊人久久大香线蕉免费视频| 亚洲午夜福利AV一区二区无码| 亚洲熟妇AV一区二区三区浪潮| 午夜成人免费视频| 国产亚洲精品无码拍拍拍色欲| 中文字幕永久免费视频| 亚洲激情视频在线观看| 黄床大片免费30分钟国产精品| 国内自产拍自a免费毛片| 看免费毛片天天看| 亚洲第一AAAAA片| av电影在线免费看| 又大又硬又爽免费视频| 91视频免费观看| 亚洲明星合成图综合区在线| 成人黄页网站免费观看大全| 亚洲精品第一国产综合精品| 成人免费区一区二区三区| 国产精品亚洲w码日韩中文| 日本高清不卡中文字幕免费| 高清国语自产拍免费视频国产| 猫咪免费人成在线网站| 久久精品国产亚洲AV无码偷窥| 最近的2019免费中文字幕|