《Effective Java》讀書筆記--建立和銷燬對象

考慮用靜態工廠方法代替構造函數。

當咱們在寫一個工具類時,是不但願用戶將該類實例化的,因此應該定義一個private的構造函數,而不
是將類聲明成abstract,由於這樣用戶能夠繼承該類,子類能夠被實例化。

String類型是非可變對象,以下代碼中,s指向的String的值是不能被更改的,當s從新賦值時,s就指向另外一個String對象。
String s = new String("silly");
上句代碼每次執行都會建立一個新的String實例,建議用 String s = "silly";代替上一句,這樣的話,對於同一個虛擬機中運行的代碼,每次執行該句時,由於它們包含相同的字符串字面常量"silly",該對象就會重用,避免建立重複對象。

過時的引用應該手動將它賦值成null,這有兩個好處: 函數

  • 讓垃圾回收機制及早清理掉這些「垃圾」,提升程序的性能。
  • 若是它們在之後又被錯誤地解引用,則程序會當即拋出NullPointerException異常,而不是悄悄的錯誤運行。
不要把JAVA的finalizer當成C++的構造函數。由於JAVA的對象不可達時,finalizer函數不肯定什麼時候才能執行。不建議把釋放資源的操做寫在finalizer中,應該顯式的提供一個close()函數給用戶手動釋放資源。
相關文章
相關標籤/搜索