1. 程式人生 > >讀書筆記-《Effective Java》第5條:避免建立不必要的物件

讀書筆記-《Effective Java》第5條:避免建立不必要的物件

 1. 這種寫法每次執行都會建立一個物件(存放於堆)。

String str1 = new String("ttt");

改進後(存放於方法區常量池),當常量池已存在,則不會重複建立。

String str2 = "ttt";

2. 應優先使用基本資料型別(int、long等等),要當心無意識的自動裝箱。

Integer b = 3;
int a = 123;
b = a;

3. 使用將初始化後值不再改變的程式碼放入靜態塊中,防止重複建立不必要的物件。

package org.test;

public class People {
    public People() {

    }

    static{
        System.out.println("People.static");
    }
}
package org.test;

import org.junit.Test;

public class TestTest {

    @Test
    public void test1() {
        new People();
        new People();
        new People();
    }


}

如果決定重複使用一個物件,那麼就得注意安全。保護性拷貝(第39條)。

建立不必要的物件只會影響程式的風格和效能。