明確一個概念,對方法的調用,即便方法中只有一句語句,也是有消耗的,包括建立棧幀、調用方法時保護現場、調用方法完畢時恢復現場等。因此例以下面的操做:html
for (int i = 0; i < list.size(); i++) {...}
建議替換爲:java
for (int i = 0, int length = list.size(); i < length; i++) {...}
這樣,在list.size()很大的時候,就減小了不少的消耗性能優化
例如:性能
String str = "aaa";if (i == 1) { list.add(str); }
建議替換爲:優化
if (i == 1) { String str = "aaa"; list.add(str); }
除非不得已。若是毫無理由地這麼寫了,只要你的領導資深一點、有強迫症一點,八成就要罵你爲何寫出這種垃圾代碼來了spa
例如:指針
for (int i = 1; i <= count; i++) { Object obj = new Object(); }
這種作法會致使內存中有count份Object對象引用存在,count很大的話,就耗費內存了,建議爲改成:code
Object obj = null;for (int i = 0; i <= count; i++) { obj = new Object(); }
這樣的話,內存中只有一份Object對象引用,每次new Object()的時候,Object對象引用指向不一樣的Object罷了,可是內存中只有一份,這樣就大大節省了內存空間了。orm
這是一個比較常見的小技巧了,若是有如下代碼:htm
String str = "123"; if (str.equals("123")) { ... }
建議修改成:
String str = "123"; if ("123".equals(str)) { ... }
這麼作主要是能夠避免空指針異常