Java性能優化的小細節

性能優化實現方式(單純考慮代碼層面):java

1.減少代碼體積數據庫

2.提升運行效率數組

如何作:安全

1.儘可能指定類.方法的final修飾符性能優化

帶有final修飾的類是不可派生的,該類全部的方法都是final的,java編譯器會尋找機會內聯全部的final方法,有助於提升運行效率.性能

2.儘可能複用對象優化

對象的建立和維護都會花費java虛擬機的精力,特別是String對象的使用,出現的字符串鏈接要使用StringBuilder/StringBuffer來替代+號,所以,生成過多的對象將會給虛擬機帶來沒必要要的負擔;ui

3.及時關閉流線程

使用I/O流對數據進行操做是會對系統形成很是大的負擔,用完要及時close;指針

4.不要在循環語句中進行復雜的處理,以及一些異常處理,應該把這些提取到循環外層

例如try...catch...應該放在外層

5.循環內不要進行對象的頻繁建立,除非不得已的狀況下;

6.儘可能使用HashMap、ArrayList、StringBuilder,除非對線程安全有需求,不推薦使用HashTable、Vector、StringBuffer後三者由於作了同步機制對性能有較高的要求;

7.清除不須要的會話;

8.將常量聲明爲static final,而且用大寫來命名

9.不建立一些不使用的對象,不導入一些不使用的包

10.程序運行過程當中避免使用反射,能夠考慮在項目啓動的時候經過反射建立對象而且加載到內存中

發射是java很是強大的一個功能,可是功能強大的同時也意味着效率不高,尤爲是Method的invoke方法

11.使用數據庫鏈接池和線程池

這樣前者能夠避免頻繁的打開和關閉流,後者能夠避免頻繁的建立和銷燬線程;

12.使用帶緩衝的流進行I/O操做

13.public修飾的方法中形參最對不要超過3個

形參過多會致使方法的容錯率下降,若是有不少方法能夠用實體類包裝傳遞;

14.在使用equals的時候把常量放在前面

這樣能夠避免空指針異常

15.不要對數組使用toString()方法

由於對數組使用只會打印出一串對象地址,並且有可能由於數據引用is爲空而致使空指針異常,不過能夠對集合使用toString()方法,由於集合的父類AbstractCollections重寫了toString()方法;

16.不要對超出數據範圍的基本數據類型作向下的強制類型轉換,會致使精度損失

17.對基本數據類型轉換爲字符串最快的方式是toString(),其次是String.valueOf(數據),再次是+"" 最慢

18.對資源的關閉建議分開操做

例如 

try{

stream.close();

fileInPutStream.close();

}catch(Exception e){

.....

}

建議修改成

try{stream.close}catch(Exception e){....} 

try{fileInPutStream.close()}catch(Exception e){....}

第一種寫法,假如stream流出了問題,拋了異常,那麼fileInPutStream就沒法關閉,這樣代碼一多,就有可能引發資源句柄泄露.

第二種寫法雖然麻煩可是不管如何都會關閉,更加安全,固然也可使用finall來關閉.

相關文章
相關標籤/搜索