Java單例設計模式及其優缺點

2021-09-24 04:41:20 字數 1432 閱讀 1735

什麼是單例設計模式?

單例模式,是一種常用的軟體設計模式。它的核心思想是指,乙個類只允許產生乙個例項化物件。

單例設計模式實現要求:

1、構造方法私有化,保證在類的外部不能通過使用new關鍵字來例項化物件

2、在類的內部產生例項化物件,呼叫類的具體方法,使用private static 封裝

3、提供乙個getter()方法,返回該物件

具體實現

餓漢式單例模式——直接new的形式

//餓漢式單例

class singleton

//getter方法返回例項化物件

public static singleton getinstance()

//普通方法

public void print()

}public class test

}

餓漢式單例模式的優缺點:

優點:比較容易實現,不存在多執行緒安全問題

缺點:當類被載入時,就會初始化instance物件,並且一直占用記憶體空間,在一定程度多行會造成記憶體資源的浪費。

懶漢式單例模式:——用的時候再new

//懶漢式單例

class singleton

//getter方法中new,並返回物件

public static singleton getinstance()

return instance;

}//普通方法

public void print()

}public class test

}

懶漢式單例模式的優缺點:

優點:當類被載入時不會初始化instance物件,只有第一次呼叫getter方法時才會初始化instance並分配記憶體,在一定程度上節約了記憶體資源。

缺點:在多執行緒環境下是不安全的,不能保證單例模式的狀態。

執行緒安全的懶漢式單例:——保證了執行緒安全但是使用synchronized只有降低了效率

//執行緒安全的懶漢式單例

class singleton

//getter方法中new,並返回物件

//使用synchronized關鍵字,保證執行緒安全

public static synchronized singleton getinstance()

return instance;

}//普通方法

public void print()

}public class test

}

單例模式及其優缺點

單例模式分為飢漢模式和懶漢模式 在將單例模式的時候我覺得要先做乙個對比,我們建立乙個類,用普通的方法宣告兩個物件,輸出兩個物件的hashcode值,hashcode值不一樣說明這兩個物件儲存在不同的物理空間。如果hashcode一樣說明儲存在同乙個地方。package com.soufun.test...

單例模式優 缺點

1,例項控制 單例模式防止其它物件對自己的例項化,確保所有的物件都訪問乙個例項。2,伸縮性 因為由類自己來控制例項化程序,類就在改變例項化程序上有相應的伸縮性。單例模式的缺點 1,系統開銷。雖然這個系統開銷看起來很小,但是每次引用這個類例項的時候都要進行例項是否存在的檢查。這個問題可以通過靜態例項來...

單例模式優缺點

5.3.7 單例模式的優缺點 1 時間和空間 比較上面兩種寫法 懶漢式是典型的時間換空間,也就是每次獲取例項都會進行判斷,看是否需要建立例項,浪費判斷的時間。當然,如果一直沒有人使用的話,那就不會建立例項,則節約記憶體空間。餓漢式是典型的空間換時間,當類裝載的時候就會建立類例項,不管你用不用,先建立...