單類模式:即保證一個類只有一個實類
那么Singleton:負責創建Singleton類自己的唯一實例,并提供一個getInstance的方法,讓外部來訪問這個類的唯一實例。
餓漢式: PRivate static Singleton uniqueInstance = newSingleton();
懶漢式 private static Singleton uniqueInstance = null;
假設在古代的時候,一般真正在在的皇帝只有一個,即創建皇帝的實類就只能是同一個,即單類模式
懶漢式:

餓漢式

單例模式是用來保證這個類在運行期間只會被創建一個類實例,另外,單例模式還提供了一個全局唯一訪問這個類實例的訪問點,就是getInstance方法。
java里面實現的單例是一個虛擬機的范圍。因為裝載類的功能是虛擬機的,所以一個虛擬機在通過自己的ClassLoader裝載餓漢式實現單例類的時候就會創建一個類的實例。
懶漢式單例有延遲加載和緩存的思想
優缺點
懶漢式是典型的時間換空間 餓漢式是典型的空間換時間不加同步的懶漢式是線程不安全的。比如,有兩個線程,一個是線程A,一個是線程B,它們同時調用getInstance方法,就可能導致并發問題。 餓漢式是線程安全的,因為虛擬機保證只會裝載一次,在裝載類的時候是不會發生并發的。其實單類模式的本質是為了控制實類的對象
何時選用單例模式
當需要控制一個類的實例只能有一個,而且客戶只能從一個全局訪問點訪問它時,可以選用單例模式,這些功能恰好是單例模式要解決的問題。
新聞熱點
疑難解答