不要在新**中使用原生態型別,而應該使用泛型。
泛型的優點:
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...