程式設計技巧整理:Java程式效能最佳化總結!
程式的效能受程式碼質量的直接影響。在本文中,
陝西優就業
小編主要介紹一些程式碼編寫的小技巧和慣例,這些技巧有助於在程式碼級別上提升系統效能。
1、慎用異常
在Java軟體開發中,經常使用 try-catch 進行錯誤捕獲,但是,try-catch 語句對系統效能而言是非常糟糕的。雖然在一次 try-catch中,無法察覺到它對效能帶來的損失,但是,一旦try-catch被應用於迴圈之中,就會給系統效能帶來極大的傷害。
2、使用區域性環境
呼叫方法時傳遞的引數以及在呼叫中建立的臨時變數都儲存在棧(Stack)中,速度較快。其他變數,如靜態變數、例項變數等,都在堆(Heap)中建立,速度較慢。
3、位運算代替乘除法
在所有的運算中,位運算是最為高效的。因此,可以嘗試使用位運算代替部分算術運算,來提高系統的執行速度。
4、替換switch
關鍵字 switch 語句用於多條件判斷, switch 語句的功能類似於 if-else 語句,兩者效能也差不多。因此,不能說 switch 語句會降低系統的效能。但是,在絕大部分情況下,switch 語句還是有效能提升空間的。
5、一維陣列代替二維陣列
由於陣列的隨機訪問的效能非常好,許多JDK類庫,如ArrayList、Vector等都是使用了陣列作為其陣列實現。但是,作為軟體開發人員也必須知道,一位陣列和二維陣列的訪問速度是不一樣的。一位陣列的訪問速度要優於二維陣列。因此,在效能敏感的系統中要使用二維陣列的,可以嘗試透過可靠地演算法,將二維陣列轉為一維陣列再進行處理,以提高系統的響應速度。
6、提取表示式
在軟體開發過程中,程式設計師很容易有意無意讓程式碼做一些“重複勞動”,在大部分情況下,由於計算機的告訴執行,這些“重複勞動”並不會對效能構成太大的威脅,但若將系統效能發揮到極致,提取這些“重複勞動”相當有意義。
7、展開迴圈
與前面所介紹的最佳化技巧略有不同,筆者認為展開迴圈是一種在極端情況下使用的最佳化手段,因為展開迴圈很可能會影響程式碼的可讀性和可維護性,而這兩者對軟體系統來說也是極為重要的。但是,當效能問題成為系統主要矛盾時,展開迴圈絕對是一種值得嘗試的技術。
8、布林運算代替位運算
雖然位運算的速度遠遠高於算術運算,但是在條件判斷時,使用位運算替代布林運算卻是非常錯誤的選擇。
9、使用arrayCopy()
陣列複製是一項使用頻率很高的功能,JDK中提供了一個高效的API來實現它:
如果在應用程式需要進行陣列複製,應該使用這個函式,而不是自己實現。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2374980/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計技巧總結程式設計
- 程式設計師面試技巧總結程式設計師面試
- Java乾貨神總結,程式設計師面試技巧Java程式設計師面試
- JAVA程式設計師面試總結,高手整理加強版Java程式設計師面試
- 好程式設計師Java培訓分享-簡單的效能最佳化技巧程式設計師Java
- Java程式設計技巧Java程式設計
- 自學程式設計的 6 個技巧總結程式設計
- Java 程式設計技巧之資料結構Java程式設計資料結構
- Java程式設計技巧:if-else優化實踐總結歸納Java程式設計優化
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- Java程式碼編寫、程式碼優化技巧總結Java優化
- Java程式設計基礎29——JavaSE總結Java程式設計
- Java 併發程式設計學習總結Java程式設計
- 結對程式設計總結程式設計
- 【程式設計素質】程式設計思想總結程式設計
- Python 程式設計高效技巧:最佳化、異常處理與效能提升Python程式設計
- Java併發程式設計實戰總結 (一)Java程式設計
- Java核心技術總結一:Java的基本程式設計結構Java程式設計
- 自己整理的java程式設計規範Java程式設計
- 35 個 Java 程式碼效能優化總結Java優化
- Nio程式設計模型總結程式設計模型
- 程式設計感悟總結一程式設計
- 程式設計師程式設計知識經驗總結程式設計師
- 小程式開發技巧總結
- 計算機程式設計心得總結計算機程式設計
- Java基本程式設計結構Java程式設計
- 十年程式設計經驗總結,三點技巧幫你提升程式碼能力!程式設計
- 好程式設計師分享Web前端效能最佳化程式設計師Web前端
- MR核心程式設計思想總結程式設計
- Javascript非同步程式設計總結JavaScript非同步程式設計
- iOS圖形程式設計總結iOS程式設計
- qt model view 程式設計總結QTView程式設計
- c++/tcl程式設計總結C++程式設計
- Java高階程式設計-姜國海 課程總結Java程式設計
- Java——物件導向程式設計的一些總結Java物件程式設計
- 【Java併發程式設計】synchronized相關面試題總結Java程式設計synchronized面試題
- 關於Java併發程式設計的總結和思考Java程式設計
- perl程式設計技巧程式設計