欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java懶漢模式和餓漢式

陳怡靜1年前6瀏覽0評論

Java中常見的單例模式有兩種:懶漢模式和餓漢式。下面分別介紹這兩種單例模式:

懶漢模式

懶漢模式是在需要獲取實例時才會創(chuàng)建對象,因此稱之為“懶漢”,可以延遲對象的產(chǎn)生,但是需要考慮到線程安全的問題。

public class LazySingleton {
private static LazySingleton instance;
private LazySingleton() {}
public static synchronized LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}

上述代碼中,getInstance()方法中使用了synchronized關(guān)鍵字,使得整個方法變成線程安全的,但是由于每次獲取實例時都需要進行同步操作,會降低程序效率。

餓漢式

餓漢式是在類加載時就會創(chuàng)建對象,因此稱之為“餓漢”,雖然沒有懶漢模式存在的線程安全問題,但是可能會浪費內(nèi)存資源。

public class HungrySingleton {
private static HungrySingleton instance = new HungrySingleton();
private HungrySingleton() {}
public static HungrySingleton getInstance() {
return instance;
}
}

上述代碼中,static關(guān)鍵字定義的實例會在類加載時就會創(chuàng)建對象,保證了線程安全,但是如果一直沒有用到該單例對象,會造成浪費內(nèi)存資源。

下一篇linux php dio