1、考慮用靜態工廠方法代替構造器
引數例項化的時候使**變得更加簡介
缺點 2、遇到多個構造器引數時要考慮用構建器
構建器(builder)
缺點 描述
**
public
class
nutritionfacts
// 構建器
public
static
class
builder
public builder calories(int val)
public builder fat(int val)
public builder carbohydrate(int val)
public builder sodium(int val)
public nutritionfacts build()
}// 測試
public
static
void
main(string args)
}
3、用私有構造器或者列舉型別強化singleton屬性
**
public
enum elvis
public
static
void
main(string args)
}
4、通過私有構造器強化不可例項化的能力
5、避免建立不必要的物件
private
static
final date boom_start; // 在靜態域內初始化
private
static
final date boom_end; // 在靜態域內初始化
static
public
boolean
isbabyboomer()
6、消除過期的物件引用
object result = elements[--size];
element[size] = null;
7、避免使用終結方法
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...