文章詳情頁
Java程序的編碼規(guī)范(6)
瀏覽:17日期:2024-07-03 13:52:35
內(nèi)容: Java程序的編碼規(guī)范(6)作者:李小敏 本文選自:IBM DW中國 2002年08月21日 ● Utility 類 Utility 類(僅僅提供方法的類)應(yīng)該被申明為抽象的來防止被繼承或被初始化。 ● 初始化 下面的代碼是一種很好的初始化數(shù)組的方法: objectArguments = new Object[] { arguments }; ● 枚舉類型 JAVA 對枚舉的支持不好,但是下面的代碼是一種很有用的模板: 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 等可以象其他語言的枚舉類型一樣使用的常量。 他們可以用 '==' 操作符來比較。 但是這樣使用有一個缺陷:如果一個用戶用這樣的方法來創(chuàng)建顏色 BLACK new Colour(0,0,0) 那么這就是另外一個對象,'=='操作符就會產(chǎn)生錯誤。她的 equal() 方法仍然有效。由于這個原因,這個技術(shù)的缺陷最好注明在文檔中,或者只在自己的包中使用。 Swing避免使用 AWT 組件 ● 混合使用 AWT 和 Swing 組件 如果要將 AWT 組件和 Swing 組件混合起來使用的話,請小心使用。實(shí)際上,盡量不要將他們混合起來使用。 ● 滾動的 AWT 組件 AWT 組件絕對不要用 JscrollPane 類來實(shí)現(xiàn)滾動。滾動 AWT 組件的時候一定要用 AWT ScrollPane 組件來實(shí)現(xiàn)。 ● 避免在 InternalFrame 組件中使用 AWT 組件 盡量不要這么做,要不然會出現(xiàn)不可預(yù)料的后果。 ● Z-Order 問題 AWT 組件總是顯示在 Swing 組件之上。當(dāng)使用包含 AWT 組件的 POP-UP 菜單的時候要小心,盡量不要這樣使用。 調(diào)試調(diào)試在軟件開發(fā)中是一個很重要的部分,存在軟件生命周期的各個部分中。調(diào)試能夠用配置開、關(guān)是最基本的。 很常用的一種調(diào)試方法就是用一個 PrintStream 類成員,在沒有定義調(diào)試流的時候就為 null,類要定義一個 debug 方法來設(shè)置調(diào)試用的流。 性能● 在寫代碼的時候,從頭至尾都應(yīng)該考慮性能問題。這不是說時間都應(yīng)該浪費(fèi)在優(yōu)化代碼上,而是我們時刻應(yīng)該提醒自己要注意代碼的效率。比如:如果沒有時間來實(shí)現(xiàn)一個高效的算法,那么我們應(yīng)該在文檔中記錄下來,以便在以后有空的時候再來實(shí)現(xiàn)她。 不是所有的人都同意在寫代碼的時候應(yīng)該優(yōu)化性能這個觀點(diǎn)的,他們認(rèn)為性能優(yōu)化的問題應(yīng)該在項(xiàng)目的后期再去考慮,也就是在程序的輪廓已經(jīng)實(shí)現(xiàn)了以后。 ● 不必要的對象構(gòu)造 不要在循環(huán)中構(gòu)造和釋放對象。 使用 StringBuffer 對象: 在處理 String 的時候要盡量使用 StringBuffer 類,StringBuffer 類是構(gòu)成 String 類的基礎(chǔ)。String 類將 StringBuffer 類封裝了起來,(以花費(fèi)更多時間為代價)為開發(fā)人員提供了一個安全的接口。當(dāng)我們在構(gòu)造字符串的時候,我們應(yīng)該用 StringBuffer 來實(shí)現(xiàn)大部分的工作,當(dāng)工作完成后將 StringBuffer 對象再轉(zhuǎn)換為需要的 String 對象。比如:如果有一個字符串必須不斷地在其后添加許多字符來完成構(gòu)造,那么我們應(yīng)該使用 StringBuffer 對象和她的 append() 方法。如果我們用 String 對象代替 StringBuffer 對象的話,會花費(fèi)許多不必要的創(chuàng)建和釋放對象的 CPU 時間。 ● 避免太多的使用 synchronized 關(guān)鍵字 避免不必要的使用關(guān)鍵字 synchronized,應(yīng)該在必要的時候再使用她,這是一個避免死鎖的好方法。 可移植性Borland Jbulider 不喜歡 synchronized 這個關(guān)鍵字,如果你的斷點(diǎn)設(shè)在這些關(guān)鍵字的作用域內(nèi)的話,調(diào)試的時候你會發(fā)現(xiàn)的斷點(diǎn)會到處亂跳,讓你不知所措。除非必須,盡量不要使用。 ● 換行 如果需要換行的話,盡量用 println 來代替在字符串中使用'n'。 你不要這樣: System.out.print('Hello,world!n'); 要這樣: System.out.println('Hello,world!'); 或者你構(gòu)造一個帶換行符的字符串,至少要象這樣: String newline = System.getProperty('line.separator'); System.out.println('Hello world' + newline); ● PrintStream PrintStream 已經(jīng)被不贊成(deprecated)使用,用 PrintWrite 來代替她。 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. Android Studio 中運(yùn)行 groovy 程序的方法圖文詳解2. 如何將asp.net core程序部署到Linux服務(wù)器3. 使用UML編寫Java應(yīng)用程序 (2)設(shè)計(jì)4. 通過Java查看程序資源占用情況5. 使用UML編寫Java應(yīng)用程序 (2)實(shí)現(xiàn)6. java 啟動exe程序,傳遞參數(shù)和獲取參數(shù)操作7. npm報(bào)錯:無法將"npm"項(xiàng)識別為cmdlet、函數(shù)、腳本文件或可運(yùn)行程序的名稱8. 不同文件構(gòu)建PHP程序的正確方式9. 如果你恨一個程序員,忽悠他去做iOS開發(fā)10. uniapp+.net core實(shí)現(xiàn)微信小程序獲取手機(jī)號功能
排行榜
