[b]1.考慮靜態方法替代建構函式[/b]
靜態工廠方法有3個好處:
[b]a.[/b]靜態工廠方法具有名字使程式碼易讀,名字不必和類名一樣具有更高靈活性。
[b]b.[/b]實現singleton模式。
[b]c.[/b]能返回乙個原返回型別的子類,形成面向介面程式設計的好習慣。
壞處[b]a.[/b]不能被繼承。[b]b.[/b]不夠物件導向。
[b]2.使用私有建構函式強化singleton。[/b]
[b]a.[/b]
public class elive
}
[b]b.[/b]public class elive
public static elive getinstance()
}
其中b比較a更加靈活,你可以在getinstance方法中實現自己想要的東西。
如果需要序列化這個類,還需要實現serializable介面和實現readresovle()
[b]3.消除過期物件的引用![/b]
如果乙個物件被無意識的保留起來,那麼這個物件以及這個物件所引用的物件都
都不會被gc**,所以當只有少量幾個物件被無意識保留下來,也會有很多物件被
排除在gc之外,而對效能趙承潛在的效能影響。
解決辦法,將不需要的物件設為null,特別在io中,乙個stream in用完以後
in.close();然後in=null;
Effective Java 02 建立和銷毀物件
第二章 建立和銷毀物件 第一條 考慮用靜態工廠方法代替建構函式 好處 1.與建構函式不同,靜態工廠方法具有名字 使用靜態工廠方法建立物件可以讓使用者更容易讀懂,表述的更清楚。因為靜態工廠方法有自己的名字,所以它們沒有建構函式那樣的限制,對於給定的原型特徵,可以有不止乙個靜態的工廠方法。如果乙個類看起...
《effective Java》讀後筆記
為什麼區域性變數要宣告為 final 在jdk 1.8 之前,不用final修飾會編譯報錯。在jdk 1.8 中,不用final修飾不會報錯,但是一旦改變了變數的值就會報錯 區域性類如果乙個內部類需要在多個方法之外仍然是可見的,或者是它太長了,不適合於放在方法內部,就應該使用成員類。如果成員類的每個...
Effective Java閱讀筆記
通用程式設計 將區域性變數的作用域最小化,可以增強 的可讀性和可維護性,並降低出錯的可能性。要使區域性變數的作用域最小化,最有力的方法就是在第一次使用它的地方宣告。如果變數在使用之前宣告,只會造成混亂,過早地宣告區域性變數不僅會使它的作用域擴充套件,而且結束地也過於晚了。不要重新造輪子,一般而言,類...