5 避免創建不必要的對象
一般來說,最好能重用對象而不是在每次需要的時候就創建一個相同功能的新對象。重用的方式即快速,又流程。如果對象是不可變的,他就始終可以被重用。
- 對於只需要實例化一次的對象,可以使用靜態初始化器。static{}
- 優先使用基本類型而不是裝箱基本類型(基本類型:long; 裝箱基本類型:Long)
public static void main(String[] args) {
//使用Long 時,每次sum增加long時都要構造一個實例
//耗時:Long 43秒,long 6.8秒
//Long sum = new Long(0);
long sum1 = 0L;
int i;
for ( i = 0; i < Long.MAX_VALUE; i++){
sum1 += 1;
}
}
例1:
String s = new String("string");
每次執行的時候都會創建一個新的String 實例。
改進:
String s = "string";
例2:
List list = new ArrayList();
改進:
先聲明對象,當需要使用時纔會創建實例。可反覆使用。
List list;
list = new ArrayList();