Java 代碼性能優化總結

Java 代碼性能優化總結

1.儘可能減小對變量的重複計算

明確一個概念,對方法的調用,即便方法中只有一句語句,也是有消耗的,包括建立棧幀、調用方法時保護現場、調用方法完畢時恢復現場等。因此例以下面的操做:html

for (int i = 0; i < list.size(); i++)

{...}

建議替換爲:java

for (int i = 0, int length = list.size(); i < length; i++)

{...}

這樣,在list.size()很大的時候,就減小了不少的消耗性能優化

2.儘可能採用懶加載的策略,即在須要的時候才建立

例如:性能

String str = "aaa";if (i == 1)
{

list.add(str);

}

建議替換爲:優化

if (i == 1)
{

String str = "aaa";

list.add(str);

}

3.不要在循環中使用try…catch…,應該把其放在最外層

除非不得已。若是毫無理由地這麼寫了,只要你的領導資深一點、有強迫症一點,八成就要罵你爲何寫出這種垃圾代碼來了spa

4.循環內不要不斷建立對象引用

例如:指針

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

5.字符串變量和字符串常量equals的時候將字符串常量寫在前面

這是一個比較常見的小技巧了,若是有如下代碼:htm

String str = "123";
if (str.equals("123")) {

...

}

建議修改成:

String str = "123";
if ("123".equals(str))

{

...

}

這麼作主要是能夠避免空指針異常

相關文章
相關標籤/搜索