文章詳情頁(yè)
Java程序的編碼規(guī)范(6)
瀏覽:35日期:2024-07-03 13:52:35
內(nèi)容: Java程序的編碼規(guī)范(6)作者:李小敏 本文選自:IBM DW中國(guó) 2002年08月21日 ● Utility 類 Utility 類(僅僅提供方法的類)應(yīng)該被申明為抽象的來(lái)防止被繼承或被初始化。 ● 初始化 下面的代碼是一種很好的初始化數(shù)組的方法: objectArguments = new Object[] { arguments }; ● 枚舉類型 JAVA 對(duì)枚舉的支持不好,但是下面的代碼是一種很有用的模板: class Colour { public static final Colour BLACK = new Colour(0, 0, 0); public static final Colour RED = new Colour(0xFF, 0, 0); public static final Colour GREEN = new Colour(0, 0xFF, 0); public static final Colour BLUE = new Colour(0, 0, 0xFF); public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF);} 這種技術(shù)實(shí)現(xiàn)了RED, GREEN, BLUE 等可以象其他語(yǔ)言的枚舉類型一樣使用的常量。 他們可以用 '==' 操作符來(lái)比較。 但是這樣使用有一個(gè)缺陷:如果一個(gè)用戶用這樣的方法來(lái)創(chuàng)建顏色 BLACK new Colour(0,0,0) 那么這就是另外一個(gè)對(duì)象,'=='操作符就會(huì)產(chǎn)生錯(cuò)誤。她的 equal() 方法仍然有效。由于這個(gè)原因,這個(gè)技術(shù)的缺陷最好注明在文檔中,或者只在自己的包中使用。 Swing避免使用 AWT 組件 ● 混合使用 AWT 和 Swing 組件 如果要將 AWT 組件和 Swing 組件混合起來(lái)使用的話,請(qǐng)小心使用。實(shí)際上,盡量不要將他們混合起來(lái)使用。 ● 滾動(dòng)的 AWT 組件 AWT 組件絕對(duì)不要用 JscrollPane 類來(lái)實(shí)現(xiàn)滾動(dòng)。滾動(dòng) AWT 組件的時(shí)候一定要用 AWT ScrollPane 組件來(lái)實(shí)現(xiàn)。 ● 避免在 InternalFrame 組件中使用 AWT 組件 盡量不要這么做,要不然會(huì)出現(xiàn)不可預(yù)料的后果。 ● Z-Order 問(wèn)題 AWT 組件總是顯示在 Swing 組件之上。當(dāng)使用包含 AWT 組件的 POP-UP 菜單的時(shí)候要小心,盡量不要這樣使用。 調(diào)試調(diào)試在軟件開發(fā)中是一個(gè)很重要的部分,存在軟件生命周期的各個(gè)部分中。調(diào)試能夠用配置開、關(guān)是最基本的。 很常用的一種調(diào)試方法就是用一個(gè) PrintStream 類成員,在沒有定義調(diào)試流的時(shí)候就為 null,類要定義一個(gè) debug 方法來(lái)設(shè)置調(diào)試用的流。 性能● 在寫代碼的時(shí)候,從頭至尾都應(yīng)該考慮性能問(wèn)題。這不是說(shuō)時(shí)間都應(yīng)該浪費(fèi)在優(yōu)化代碼上,而是我們時(shí)刻應(yīng)該提醒自己要注意代碼的效率。比如:如果沒有時(shí)間來(lái)實(shí)現(xiàn)一個(gè)高效的算法,那么我們應(yīng)該在文檔中記錄下來(lái),以便在以后有空的時(shí)候再來(lái)實(shí)現(xiàn)她。 不是所有的人都同意在寫代碼的時(shí)候應(yīng)該優(yōu)化性能這個(gè)觀點(diǎn)的,他們認(rèn)為性能優(yōu)化的問(wèn)題應(yīng)該在項(xiàng)目的后期再去考慮,也就是在程序的輪廓已經(jīng)實(shí)現(xiàn)了以后。 ● 不必要的對(duì)象構(gòu)造 不要在循環(huán)中構(gòu)造和釋放對(duì)象。 使用 StringBuffer 對(duì)象: 在處理 String 的時(shí)候要盡量使用 StringBuffer 類,StringBuffer 類是構(gòu)成 String 類的基礎(chǔ)。String 類將 StringBuffer 類封裝了起來(lái),(以花費(fèi)更多時(shí)間為代價(jià))為開發(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ì)花費(fèi)許多不必要的創(chuàng)建和釋放對(duì)象的 CPU 時(shí)間。 ● 避免太多的使用 synchronized 關(guān)鍵字 避免不必要的使用關(guān)鍵字 synchronized,應(yīng)該在必要的時(shí)候再使用她,這是一個(gè)避免死鎖的好方法。 可移植性Borland Jbulider 不喜歡 synchronized 這個(gè)關(guān)鍵字,如果你的斷點(diǎn)設(shè)在這些關(guān)鍵字的作用域內(nèi)的話,調(diào)試的時(shí)候你會(huì)發(fā)現(xiàn)的斷點(diǎn)會(huì)到處亂跳,讓你不知所措。除非必須,盡量不要使用。 ● 換行 如果需要換行的話,盡量用 println 來(lái)代替在字符串中使用'n'。 你不要這樣: System.out.print('Hello,world!n'); 要這樣: System.out.println('Hello,world!'); 或者你構(gòu)造一個(gè)帶換行符的字符串,至少要象這樣: String newline = System.getProperty('line.separator'); System.out.println('Hello world' + newline); ● PrintStream PrintStream 已經(jīng)被不贊成(deprecated)使用,用 PrintWrite 來(lái)代替她。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽:
Java
相關(guān)文章:
1. SXNA RSS Blog 聚合器程序2. PHP投票小程序、防超時(shí)、防IP限制3. php面向?qū)ο蟪绦蛟O(shè)計(jì)介紹4. 氣象 XML 數(shù)據(jù)源應(yīng)用程序開發(fā)指南-操作檢查列表5. 2005年11月程序語(yǔ)言世界排行榜-Java居首位6. python 批量下載bilibili視頻的gui程序7. Python PyQt5運(yùn)行程序把輸出信息展示到GUI圖形界面上8. uni-app結(jié)合.NET 7實(shí)現(xiàn)微信小程序訂閱消息推送9. java實(shí)現(xiàn)簡(jiǎn)單的小超市程序10. 氣象 XML 數(shù)據(jù)源應(yīng)用程序開發(fā)指南-簡(jiǎn)介
排行榜
