代碼優化,可能說起來一些人覺得沒用.可是我覺得應該平時開發過程中,就盡量要求自己,養成良好習慣,一個個小的優化點,積攢起來絕對是有大幅度效率提升的。好了,將平時看到用到總結的分享給大家。
代碼優化的目標:
明確一個概念,對方法的調用,即使方法中只有一句語句,也是有消耗的,包括創建棧幀、調用方法時保護現場、調用方法完畢時恢復現場等。所以例如下面的操作:
for (int i = 0; i < list.size(); i++) {...} 建議替換為: for (int i = 0, int length = list.size(); i < length; i++) {...} 這樣,在list.size()很大的時候,就減少了很多的消耗
6、盡量采用懶加載的策略,即在需要的時候才創建
例如:
String str = "aaa";if (i == 1) { list.add(str); } 建議替換為: if (i == 1) { String str = "aaa"; list.add(str); }
異常對性能不利。拋出異常首先要創建一個新的對象,Throwable接口的構造函數調用名為fillInStackTrace()的本地同步方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤信息。只要有異常被拋出,Java虛擬機就必須調整調用堆棧,因為在處理過程中創建了一個新的對象。異常只能用於錯誤處理,不應該用來控制程序流程。
8、不要在循環中使用try…catch…,應該把其放在最外
除非不得已。如果毫無理由地這麼寫了,只要你的領導資深一點、有強迫症一點,八成就要罵你為什麼寫出這種垃圾代碼來了
比如ArrayList、LinkedLlist、StringBuilder、StringBuffer、HashMap、HashSet等等,以StringBuilder為例: