中介軟體參數調優、叢集部署只能解決部分問題,**代碼品質才是效能基石**。以下匯總高頻優化模式,供團隊制定編碼規範參考。
// 差:每次迭代呼叫 list.size()
for (int i = 0; i < list.size(); i++) { ... }
// 優:緩存長度
for (int i = 0, len = list.size(); i < len; i++) { ... }
// 差:迴圈內重複 new
for (int i = 0; i < 100; i++) {
Object obj = new Object();
}
// 優:引用複用
Object obj = null;
for (int i = 0; i < 100; i++) {
obj = new Object(); // 若迴圈內不需保留前一個實例,可複用引用槽
}
注意:若迴圈體需保留歷史實例(如加入 List),則不可複用引用,應關注物件池模式。
StringBuilder(單執行緒)或 StringBuffer(多執行緒)new ArrayList(預估大小)、new HashMap(預估大小, 0.75f) 避免擴容複製finally 區塊確實關閉,配合連線池ConcurrentHashMap 等無鎖結構if (log.isDebugEnabled()) log.debug(...) 避免字串拼接浪費Method/Field 物件Pattern.compile() 重用徵集各位高手補充,匯聚百家之長,共建《Java 高效能編碼規範》團隊版。