讀書筆記-《Effective Java》第5條:避免建立不必要的物件
阿新 • • 發佈:2018-12-29
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條)。
建立不必要的物件只會影響程式的風格和效能。