Java學習之程式碼最佳化

好程式設計師發表於2020-09-25

Java學習之程式碼最佳化,程式碼最佳化,程式設計師必須懂得一門學問,簡潔漂亮的程式碼給人的感覺就像如沐清風,一堆垃圾的程式碼給人的感覺就像吃了翔一樣的難受。所以不管是程式設計師還是準程式設計師,養成良好的程式碼最佳化習慣都是必須要養成的。Java以專業性和強大的規範性獨受企業青睞!別讓別人看見你的程式碼第一時間想到的是刪了從寫而不是程式碼最佳化。


 首先,我們要搞清楚最佳化程式碼的目的。


 減小程式碼的體積;提高程式碼執行的效率;程式碼最佳化具體細節(只說Java的,小編就是Java程式設計師)。


 1.儘量指定類、方法的final修飾符。


 Java編譯器會尋找機會內聯所有的final方法,內聯對於提升Java執行效率作用重大,具體參見Java執行期最佳化。此舉大概能2.夠使效能平均提高50%。


 3.儘量重用物件特別是String物件的使用,出現字串連線時應該使用StringBuilder/StringBuffer代替。


 4.儘可能使用區域性變數。


 5.及時關閉流:進行資料庫連線、I/O流操作,在使用完畢後,及時關閉以釋放資源。


 6.儘量減少對變數的重複計算:明確一個概念,對方法的呼叫,即使方法中只有一句語句,也是有消耗的,包括建立棧幀、呼叫方法時保護現場、呼叫方法完畢時恢復現場等。


 7.儘量採用懶載入的策略,即在需要的時候才建立。


 8.慎用異常


 異常對效能不利。丟擲異常首先要建立一個新的物件,Throwable介面的建構函式呼叫名為fillInStackTrace()的本地同步方法,fillInStackTrace()方法檢查堆疊,收集呼叫跟蹤資訊。只要有異常被丟擲,Java虛擬機器就必須調整呼叫堆疊,因為在處理過程中建立了一個新的物件。異常只能用於錯誤處理,不應該用來控制程式流程。


 9.不要在迴圈中使用try…catch…,應該把其放在最外層。


 10.如果能估計到待新增的內容長度,為底層以陣列方式實現的集合、工具類指定初始長度。


 11.當複製大量資料時,使用System.arraycopy()命令。


 12.乘法和除法使用移位操作:移位操作雖然快,但是可能會使程式碼不太好理解,因此zuihao加上相應的註釋。


 13.迴圈內不要不斷建立物件引用。


 14.基於效率和型別檢查的考慮,應該儘可能使用array,無法確定陣列大小時才使用ArrayList。


 15.儘量使用HashMap、ArrayList、StringBuilder,除非執行緒安全需要,否則不推薦使用Hashtable、Vector、StringBuffer,後三者由於使用同步機制而導致了效能開銷。


 16.不要將陣列宣告為public static final。


 學習就像逆水行舟,學習Java更是這樣,畢竟Java已經雄踞程式語言排行diyi已經十幾年了,但正是這十幾年,也使得Java各方面的體系也比其他語言更加完整和先進,有什麼不懂的問題很容易就能到到解決。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2723993/,如需轉載,請註明出處,否則將追究法律責任。

相關文章