單例設計模式能夠有效地節約資源,避免重複地申請新的內存空間,在程序的生命週期中只用一個類的實例來完成對數據的操做。html
經過學習,我瞭解到單例模式有兩種形式:懶漢式和餓漢式。設計模式
示例代碼:學習
1 public class SingleTon{ 2 private static SingleTon singleTon; 3 4 private SingleTon() {} 5 6 public static SingleTon getInstance() { 7 if(singleTon==null) { 8 9 synchronized (SingleTon.class) { 10 if(singleTon==null) { 11 singleTon=new SingleTon(); 12 } 13 } 14 } 15 16 return singleTon; 17 } 18 19 }
示例代碼:spa
1 public class SingleTon{ 2 private static SingleTon singleTon = new SingleTon(); 3 4 private SingleTon() {} 5 6 public static SingleTon getInstance() { 7 return singleTon; 8 } 9 10 }
單例模式的兩種方式各有利弊,懶漢式在運行時獲取實例,犧牲了效率換取了初始內存空間的節約;餓漢式在類加載時就完成了初始化,犧牲了 初始內存空間的節約 從而得到了效率。二者效率差別問題須要在JVM層面詳解,參考下列文章。設計