單例模式分爲兩種:懶漢模式/餓漢模式,其中懶漢模式的線程是非安全的,但是對象在使用時才創建,因此在一定程度上節省了內存空間。餓漢模式的線程是安全的,但是因爲提前創建,使用時直接使用,因此相對懶漢模式佔用了許多空間。下面用代碼來簡單介紹兩種模式:
1.懶漢模式:
public class Singleton01{
private static Singleton01 single = null;
ThreadLocal<Singleton01> thread = new ThreadLocal<Singleton01>();//因爲懶漢模式的線程爲非安全的,因此我們可以使用ThreadLocal來保證懶漢模式的線程安全
private Singleton01(){}
public Singleton01 getInstance(){
single = thread.get();
if(single == null){
single = new Singleton01();
thread.set(single);
}
return single;
}
}
一個簡單的懶漢模式的大力模式寫完了,下面來完成餓漢模式:
public class Singleton01{
private static Singleton02 single = new Singleton02();
private Singleton02(){}
public Singleton02 getInstance(){
return single;
}
}
最簡單的單利模式的簡單應用介紹完了,作爲一個剛剛入門的小菜鳥,抱着開源的心態與大家分享自己學習的所得,希望能得到大神的幫助和指點,也希望能給用到的人帶來一些幫助,謝謝大家