成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

單例模式的幾種寫法

Youngs / 3170人閱讀

摘要:單例模式要點(diǎn)私有的構(gòu)造方法指向?qū)嵗乃接徐o態(tài)引用獲取實(shí)例對(duì)象的公有靜態(tài)方法餓漢模式非線程安全私有化構(gòu)造函數(shù)懶漢模式非線程安全私有化構(gòu)造函數(shù)雙重線程鎖檢查單例線程安全私有化構(gòu)造函數(shù)枚舉單例更多關(guān)于的文章請(qǐng)戳這里您的留言意見是對(duì)我最大的支持我的

單例模式要點(diǎn)

私有的構(gòu)造方法

指向?qū)嵗乃接徐o態(tài)引用

獲取實(shí)例對(duì)象的公有靜態(tài)方法

餓漢模式(非線程安全)
public class SingleTon {
    private SingleTon(){}//私有化構(gòu)造函數(shù)
    private static final SingleTon singleTon=new SingleTon();
    public static SingleTon getInstance(){
        return singleTon;
    }
}
懶漢模式(非線程安全)
public class SingleTon {
    private SingleTon() {}//私有化構(gòu)造函數(shù)
    private static SingleTon singleTon;
    public static SingleTon getInstance() {
        if (singleTon == null)
            singleTon = new SingleTon();
        return singleTon;
    }
}
雙重線程鎖檢查單例(線程安全)
public class SingleTon {
    private SingleTon() {}//私有化構(gòu)造函數(shù)
    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;
}
更多關(guān)于java的文章請(qǐng)戳這里:(您的留言意見是對(duì)我最大的支持)

我的文章列表
Email:[email protected]

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66958.html

相關(guān)文章

  • 設(shè)計(jì)模式單例模式 (關(guān)于餓漢式和懶漢式)

    摘要:在寫單例模式的代碼之前,我們先簡單了解一下兩個(gè)知識(shí)點(diǎn),關(guān)于類的加載順序和關(guān)鍵字。懶漢和餓漢在程序編寫上,一般將單例模式分為兩種,分別是餓漢式和懶漢式,餓漢式在類加載時(shí)就完成了初始化,所以類加載比較慢,但獲取對(duì)象的速度快。 定義 單例模式是比較常見的一種設(shè)計(jì)模式,目的是保證一個(gè)類只能有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例,避免頻繁創(chuàng)建對(duì)象,節(jié)約內(nèi)存。 單例模式的應(yīng)用場景很多, 比如...

    Darkgel 評(píng)論0 收藏0
  • 單例模式你會(huì)幾種寫法?

    摘要:使用靜態(tài)類體現(xiàn)的是基于對(duì)象,而使用單例設(shè)計(jì)模式體現(xiàn)的是面向?qū)ο?。二編寫單例模式的代碼編寫單例模式的代碼其實(shí)很簡單,就分了三步將構(gòu)造函數(shù)私有化在類的內(nèi)部創(chuàng)建實(shí)例提供獲取唯一實(shí)例的方法餓漢式根據(jù)上面的步驟,我們就可以輕松完成創(chuàng)建單例對(duì)象了。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 本來打算沒那么快更新的,這陣子在刷Spring的書籍。在看...

    solocoder 評(píng)論0 收藏0
  • java單例模式幾種實(shí)現(xiàn)方式分析

    摘要:餓漢模式線程安全,調(diào)用效率高,但是不能延時(shí)加載這樣做的好處是編寫簡單,但是無法做到延遲創(chuàng)建對(duì)象??紤]線程安全的寫法這種寫法考慮了線程安全,將對(duì)的判斷以及的部分使用進(jìn)行加鎖。如此即可從語義上保證這種單例模式寫法是線程安全的。 餓漢模式 線程安全,調(diào)用效率高,但是不能延時(shí)加載 public class ImageLoader{ private static ImageLoade...

    GT 評(píng)論0 收藏0
  • Java實(shí)現(xiàn)單例幾種方式

    摘要:單例模式的懶漢實(shí)現(xiàn)線程安全通過設(shè)置同步方法,效率太低,整個(gè)方法被加鎖模擬在創(chuàng)建對(duì)象之前做一些準(zhǔn)備工作使用上面的測試類,測試結(jié)果可以看到,這種方式達(dá)到了線程安全??梢哉f這種方式是實(shí)現(xiàn)單例模式的最優(yōu)解。 1. 什么是單例模式 單例模式指的是在應(yīng)用整個(gè)生命周期內(nèi)只能存在一個(gè)實(shí)例。單例模式是一種被廣泛使用的設(shè)計(jì)模式。他有很多好處,能夠避免實(shí)例對(duì)象的重復(fù)創(chuàng)建,減少創(chuàng)建實(shí)例的系統(tǒng)開銷,節(jié)省內(nèi)存。 ...

    zengdongbao 評(píng)論0 收藏0
  • JAVA單例(Singleton)實(shí)現(xiàn)幾種方式(多線程安全)

    摘要:缺點(diǎn)每次調(diào)用都有線程開銷延遲初始化單例默認(rèn)構(gòu)造方法為,避免用戶用構(gòu)造出新對(duì)象獲取單例的靜態(tài)工廠同步方法延遲初始化單例使用同步方法保證多線程操作只實(shí)例化一個(gè)實(shí)力單例模式。 主要分為兩種: 直接初始化 延遲初始化 直接初始化 直接初始化final靜態(tài)成員 線程安全:JVM保證final靜態(tài)成員只會(huì)被初始化一次 公有靜態(tài)成員是個(gè)final域,直接引用成員獲取單例 /** * 公有靜態(tài)成...

    smartlion 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Youngs

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<