Java學習之程式碼優化
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/70015609/viewspace-2883520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java學習之程式碼最佳化Java
- 《java學習三》jvm效能優化-------調優JavaJVM優化
- Java程式碼編寫、程式碼優化技巧總結Java優化
- 《java學習三》jvm效能優化------jconsulJavaJVM優化
- MySQL優化學習筆記之explainMySql優化筆記AI
- MySQL優化學習筆記之索引MySql優化筆記索引
- 【程式碼優化】Bean對映之MapStruct優化BeanStruct
- Python學習之如何簡化程式碼?六大技巧!Python
- Effective Java -- 使用try-with-resources優化程式碼Java優化
- java程式碼編寫優化(持續更新...)Java優化
- (資料科學學習手札92)利用query()與eval()優化pandas程式碼資料科學優化
- jmeter學習指南之Beanshell 呼叫 java 程式碼的三種方式JMeterBeanJava
- 程式碼優化優化
- 學習 Java 之 位元組碼驗證Java
- Java學習之AWT GUI程式設計JavaGUI程式設計
- Java學習之Swing Gui程式設計JavaGUI程式設計
- 《java學習二》jvm效能優化-----認識jvmJavaJVM優化
- 如何學習用Java編寫程式碼?Java
- javaScript程式碼優化JavaScript優化
- webpack--效能優化之打包構建速度和程式碼除錯優化Web優化除錯
- 優化If else(簡化程式碼)優化
- Java學習之7種排序演算法的完整例項程式碼Java排序演算法
- Java優化if-else程式碼幾個解決方案Java優化
- 要點提煉| 理解JVM之程式編譯&程式碼優化JVM編譯優化
- Java學習之介面Java
- 【強化學習】強化學習的基本概念與程式碼實現強化學習
- 好程式設計師Java學習路線之Java中的物件流和序列化程式設計師Java物件
- Python進階學習之程式碼閱讀Python
- Android Note - 程式碼優化Android優化
- Java開發學習(五十)----MyBatisPlus快速開發之程式碼生成器解析JavaMyBatis
- Java效能優化:教你提高程式碼執行的效率Java優化
- 持續學習-儲存優化之Protobuffer使用與原理優化
- Vue原始碼學習之資料初始化Vue原始碼
- Java學習之反射篇Java反射
- Java學習之陣列Java陣列
- Java 容器學習之 HashMapJavaHashMap
- 深入理解Java虛擬機器(程式編譯與程式碼優化)Java虛擬機編譯優化
- MySQL優化學習手札(三)MySql優化