摘要:單例模式要點私有的構造方法指向實例的私有靜態引用獲取實例對象的公有靜態方法餓漢模式非線程安全私有化構造函數懶漢模式非線程安全私有化構造函數雙重線程鎖檢查單例線程安全私有化構造函數枚舉單例更多關于的文章請戳這里您的留言意見是對我最大的支持我的
單例模式要點
私有的構造方法
指向實例的私有靜態引用
獲取實例對象的公有靜態方法
餓漢模式(非線程安全)public class SingleTon { private SingleTon(){}//私有化構造函數 private static final SingleTon singleTon=new SingleTon(); public static SingleTon getInstance(){ return singleTon; } }懶漢模式(非線程安全)
public class SingleTon { private SingleTon() {}//私有化構造函數 private static SingleTon singleTon; public static SingleTon getInstance() { if (singleTon == null) singleTon = new SingleTon(); return singleTon; } }雙重線程鎖檢查單例(線程安全)
public class SingleTon { private SingleTon() {}//私有化構造函數 private static volatile SingleTon singleTon; public static SingleTon getInstance() { if (singleTon == null){ synchronized (SingleTon.class){ SingleTon st=singleTon; if (st == null) { st=new SingleTon(); singleTon=st; } } } return singleTon; } }枚舉單例
public enum SingleTon{ Instance; }
我的文章列表
Email:sxh13208803520@gmail.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66958.html
摘要:在寫單例模式的代碼之前,我們先簡單了解一下兩個知識點,關于類的加載順序和關鍵字。懶漢和餓漢在程序編寫上,一般將單例模式分為兩種,分別是餓漢式和懶漢式,餓漢式在類加載時就完成了初始化,所以類加載比較慢,但獲取對象的速度快。 定義 單例模式是比較常見的一種設計模式,目的是保證一個類只能有一個實例,而且自行實例化并向整個系統提供這個實例,避免頻繁創建對象,節約內存。 單例模式的應用場景很多, 比如...
摘要:使用靜態類體現的是基于對象,而使用單例設計模式體現的是面向對象。二編寫單例模式的代碼編寫單例模式的代碼其實很簡單,就分了三步將構造函數私有化在類的內部創建實例提供獲取唯一實例的方法餓漢式根據上面的步驟,我們就可以輕松完成創建單例對象了。 前言 只有光頭才能變強 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 本來打算沒那么快更新的,這陣子在刷Spring的書籍。在看...
摘要:餓漢模式線程安全,調用效率高,但是不能延時加載這樣做的好處是編寫簡單,但是無法做到延遲創建對象。考慮線程安全的寫法這種寫法考慮了線程安全,將對的判斷以及的部分使用進行加鎖。如此即可從語義上保證這種單例模式寫法是線程安全的。 餓漢模式 線程安全,調用效率高,但是不能延時加載 public class ImageLoader{ private static ImageLoade...
摘要:單例模式的懶漢實現線程安全通過設置同步方法,效率太低,整個方法被加鎖模擬在創建對象之前做一些準備工作使用上面的測試類,測試結果可以看到,這種方式達到了線程安全。可以說這種方式是實現單例模式的最優解。 1. 什么是單例模式 單例模式指的是在應用整個生命周期內只能存在一個實例。單例模式是一種被廣泛使用的設計模式。他有很多好處,能夠避免實例對象的重復創建,減少創建實例的系統開銷,節省內存。 ...
摘要:缺點每次調用都有線程開銷延遲初始化單例默認構造方法為,避免用戶用構造出新對象獲取單例的靜態工廠同步方法延遲初始化單例使用同步方法保證多線程操作只實例化一個實力單例模式。 主要分為兩種: 直接初始化 延遲初始化 直接初始化 直接初始化final靜態成員 線程安全:JVM保證final靜態成員只會被初始化一次 公有靜態成員是個final域,直接引用成員獲取單例 /** * 公有靜態成...
閱讀 2465·2021-09-09 09:33
閱讀 2865·2019-08-30 15:56
閱讀 3119·2019-08-30 14:21
閱讀 891·2019-08-30 13:01
閱讀 855·2019-08-26 18:27
閱讀 3584·2019-08-26 13:47
閱讀 3449·2019-08-26 10:26
閱讀 1583·2019-08-23 18:38