effective java 建立和銷毀物件

2021-08-29 11:56:49 字數 738 閱讀 7639

[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閱讀筆記

通用程式設計 將區域性變數的作用域最小化,可以增強 的可讀性和可維護性,並降低出錯的可能性。要使區域性變數的作用域最小化,最有力的方法就是在第一次使用它的地方宣告。如果變數在使用之前宣告,只會造成混亂,過早地宣告區域性變數不僅會使它的作用域擴充套件,而且結束地也過於晚了。不要重新造輪子,一般而言,類...