Effective Java 學習筆記 23

2021-05-23 03:24:00 字數 565 閱讀 4988

不要在新**中使用原生態型別,而應該使用泛型。

泛型的優點:

1. 編譯時就會進行型別檢查。 當向乙個容器中裝入物件時,編譯器會檢查,插入的例項是不是前面宣告的型別。而不用等到執行時才會發現,而丟擲classcastexception.

2.從集合中取元素不用再進行手工轉換,編譯器會替你進行隱式的轉換。

盡量使用set代替set,  因為原生態不是型別安全的。

在必要時可以使用set<?>

// unbounded wildcard type - typesafe and flexible

static int numelementsincommon(set<?> s1, set<?> s2)

例外情況:

1.類文字中必須使用原生態型別:list.class, string.class, int.class,但list.class不合法。

2.使用instanceof時,只能用原生態。

// legitimate use of raw type - instanceof operator

if (o instanceof set)

Effective Java 學習筆記 6

及時消除不使用的物件的引用,理論上,帶有記憶體管理的語言是不存在記憶體洩漏的,但是如果對物件的操作不當,也是可能會造成記憶體洩漏.如有乙個stack,其pop函式如下.public object pop if element.length 0 return null return element s...

Effective Java 學習筆記(5)

盡量復用物件,而不是建立新的物件,特別是當乙個物件是immutable 不可改變 的時候。如string物件,string s new string string 千萬不要這樣做,因為這裡實際上建立了兩個物件。要避免出現這樣的情況,1是可以用靜態工廠函式,來解決,如類庫中的boolean.value...

Effective Java 學習筆記 6

及時消除不使用的物件的引用,理論上,帶有記憶體管理的語言是不存在記憶體洩漏的,但是如果對物件的操作不當,也是可能會造成記憶體洩漏.如有乙個stack,其pop函式如下.public object pop if element.length 0 return null return element s...