Java 程式效能最佳化

來源:互聯網
上載者:User

在Java程式中,效能問題的原因除了核心演算法之外,很大一部分是有程式本身代碼導致,所以對程式細節的最佳化有事可以很好的提升程式的效能。 

1、 
盡量制定類的final修飾符,因為final修飾的類是不可以派生的,這樣不僅可以防止其他類覆蓋這個類中的關鍵方法,而且如果指定該類為final時,改類中的所有方法都是final類型,Java編譯器會自動內聯(inline)所有的final方法。

2、 
Switch   case 的效率要高於if else模式

3、 
盡量使用局部變數,局部變數在棧中,操作比較快,需要初始化。其他變數在堆中建立,速度較慢。

4、 
不要太多詳細JVM 的GC機制,對象使用完成之後,手動置為NULL。

5、 
在使用同步機制時,使用方法同步塊代替代碼塊同步。

6、 
不要在迴圈語句中使用try/catch,應該將其放在迴圈外邊。應該慎用異常,異常對效能不利,拋出對象時首先會建立一個新的對象,收集跟蹤棧的調用資訊。

7、 
使用StringBuffer時,使用合適的容量值來初試話。StringBuffer在內部維護一個字元數組,預設值為16個字元,當填充資料達到他的最大容量時,Stringbuffer會自動將自身容量增加到當前的2倍+2。只要StringBuffer到達它的最大容量,就需要建立一個新的字元數組,然後重新將舊字元和新字元都複製一遍(代價很大)。

8、 
當需要複製大量資料時,使用   system.arraycopy()命令。

9、 
乘法和除法使用移位來代替(左移是乘2)。

10、 盡量不要使用new
關鍵字建立類的執行個體

因為用new 關鍵詞建立類的執行個體時,建構函式鏈中所有的建構函式都會被自動調用。但是如果一個對象實現了Cloneable介面,可以調用它的clone方法。Clone()方法不會調用任何類的建構函式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.