Java基礎學習總結(93)——Java編碼規範之代碼性能及慣例

一、避免使用包裝類構造函數

按照SUN公司的說明,使用自動裝箱或靜態工廠方法比使用new一個對象快3到4倍,該規則能夠用在valueOf或其它靜態工廠的調用中(如:Short、Integer, Long、Double, Byte 、Boolean等)。數據庫

JAVA編碼規範之代碼性能及慣例

推薦用valueOf()
編程

二、面向接口編程時,推薦使用接口的聲明方式

JAVA編碼規範之代碼性能及慣例

推薦使用接口聲明方式ide

三、單個方法代碼行數儘可能保持在80-100行以內

四、數據庫及磁盤IO等操做,必須在try-catch-finally塊的finally中執行close()方法

若有多個對象須要關閉,則須分別對每一個對象的close()方法進行try-catch,以防止出現一個對象關閉失敗而致使其餘對象都未關閉的狀況出現
函數

五、不要在循環體內進行數據庫的「鏈接-關閉」操做

若有大批量的數據須要修改,建議使用PreparedStatement的Batch功能(一次性發送多個操做給數據庫)性能

六、大量(如超過五次以上的「+=」運算)的字符串操做應使用StringBuilder或StringBuffer,儘可能避免使用String

七、不要在循環條件中使用表達式

JAVA編碼規範之代碼性能及慣例

循環條件中避免使用表達式ui

八、應儘量的以指明容量大小的方式對ArrayList進行實例化

  • public ArrayList();編碼

    默認的構造器,JAVA以10個元素的大小初始化
    spa

  • public ArrayList(int);3d

    用指定的容量大小大小初始化日誌

不指明容量大小時,如集合容量不夠,則JAVA會以1.5倍的容量遞增擴充,並且每次擴充,系統會從新拷貝一遍已經加入到ArrayList的數據,從而致使額外的內存開銷。

九、集合中的數據若是不使用了應該及時釋放

因爲集合保存了對象的引用,虛擬機的垃圾收集器就不會回收

十、不要在循環體內聲明變量

儘可能避免在循環體內聲明變量,由於每個引用佔4個字節。這樣能夠極大的減小新對象的建立數量,從而很大限度的減少內存開銷。

JAVA編碼規範之代碼性能及慣例

不要在循環體內聲明變量

十一、非正常運行產生的異常被捕獲後,必須對異常進行處理

在非finally塊代碼中catch的異常應該從新拋出通過封裝的異常,在finally中再次catch的異常不該該再次拋出,應該寫日誌。不管是拋出異常仍是記錄日誌,都要傳遞異常對象。日誌應記錄詳細的描述信息,避免調用異常對象的getMessage()方法,直接將該異常對象做爲參數傳遞。

十二、儘可能定位異常類型,不要一概catch(Exception ex)

當須要在某些出口捕獲全部可能出現的運行時異常或Error時,能夠catch Exception 或Throwable。

1三、儘可能避免一個方法中一個大的try塊,catch一個Exception的代碼方式,若是有必要可使用多個try-catch塊分別處理

1四、不要將賦值運算符用在容易與相等關係運算符混淆的地方,如:

JAVA編碼規範之代碼性能及慣例

可讀性很重要

相似的道理,咱們可將「if (a == b && c == d)」改成可讀性更強的「if ((a == b) && (c == d)) 」,可將「x >= 0 ? x : -x;"改成」(x >= 0) ? x : -x;「

相關文章
相關標籤/搜索