Effective Java學習筆記(1)

2021-08-30 07:20:25 字數 623 閱讀 4194

第1條:用靜態工廠方法代替建構函式

如boolean類中的乙個簡單的例子:

public  static boolean valueof(boolean b)
好處有3個:與建構函式不同,靜態工廠方法具有名字;每次被呼叫時不要求非得建立乙個新的物件;他們可以返回乙個原返回型別的子型別物件。

缺點有2個:類如果不含有公有的或者受保護的建構函式就不能被子類化;與其他靜態方法沒有任何區別。

第2條:用私有建構函式強化singleton屬性

有2種實現方法:

使用公有靜態final域:

public class a

}

提供乙個公有靜態工廠方法:

public class b  

public static b getinstance()

}

注意:為了使singleton類變成可序列化的(serializable),只在宣告中加上「implements serializable」是不夠的,還必須提供乙個readresolve方法。

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...