国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手寫java設(shè)計模式之單例模式,附源碼解讀

這篇具有很好參考價值的文章主要介紹了手寫java設(shè)計模式之單例模式,附源碼解讀。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在Java應(yīng)用中,單例對象能保證在一個JVM中,該對象只有一個實例存在。這樣的模式有幾個好處:

1、減少類的頻繁創(chuàng)建,減少使用頻繁使用new創(chuàng)建實例,減少GC壓力。

2、某些應(yīng)用場景下,使用單例模式,保證整個系統(tǒng)中只會創(chuàng)建一個類。

單例模式分兩種:餓漢模式和懶漢模式:

懶漢模式:

//第一次調(diào)用時才初始化,避免內(nèi)存浪費,線程安全
public class LazySingleton {
    /* 持有私有靜態(tài)實例,防止被引用,此處賦值為null,目的是實現(xiàn)延遲加載 */
    private static LazySingleton instance = null;

    /* 私有構(gòu)造方法,防止被實例化 */
    private LazySingleton() {
    }
   //在第一次創(chuàng)建對象的時候需要加鎖,之后就不需要了
    public static LazySingleton getInstance() {
        if(null == instance) {
            synchronized (LazySingleton.class) {
                if(null == instance) {
                    instance = new LazySingleton();
                }
            }
        }
        return instance;
    }

}

餓漢模式:文章來源地址http://www.zghlxwxcb.cn/news/detail-861621.html

public class HungerySingleton {
    //類加載時就初始化,避免了線程同步的問題,是線程安全的
    private static HungerySingleton instance = new HungerySingleton();
    private HungerySingleton(){}
    public static HungerySingleton getInstance(){
        return instance;
    }

}

到了這里,關(guān)于手寫java設(shè)計模式之單例模式,附源碼解讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java課堂|獨一無二的事物(設(shè)計模式之單例模式)

    Java課堂|獨一無二的事物(設(shè)計模式之單例模式)

    本文主要講述 單例模式 ,文中使用通俗易懂的案例,使你更好的學(xué)習(xí)本章知識點并理解原理,做到有道無術(shù)。 單例模式是23種設(shè)計模式中 創(chuàng)建型模式 的一種,通過單例模式的方法創(chuàng)建的類在當(dāng)前進(jìn)程或者線程中只有一個實例。單例模式有兩種比較常見的實現(xiàn)方式: 餓漢式

    2024年02月07日
    瀏覽(24)
  • Java設(shè)計模式之單例模式詳解(懶漢式和餓漢式)

    在開發(fā)工作中,有些類只需要存在一個實例,這時就可以使用單例模式。Java中的單例模式是一種常見的設(shè)計模式,它確保一個類只有一個實例,并提供全局訪問點。下面來介紹一下兩種常見的單例模式:懶漢式和餓漢式。 懶漢式屬于一種延遲加載的單例模式,它的特點是在

    2024年02月15日
    瀏覽(25)
  • 設(shè)計模式之單例設(shè)計模式

    就是一個類只允許創(chuàng)建一個對象,那么我們稱該類為單例類,這種設(shè)計模式我們稱為單例模式。 資源共享:有些類擁有共享的資源,例如數(shù)據(jù)庫連接池、線程池、緩存等。使用單例模式確保只有一個實例,避免資源浪費和競爭條件。 線程安全:單例模式可以用來保證多線程

    2024年02月07日
    瀏覽(29)
  • 【前端設(shè)計模式】之單例模式

    在前端開發(fā)中,單例模式是一種常見的設(shè)計模式,用于確保一個類只有一個實例,并提供全局訪問點。在實現(xiàn)單例模式時,有一些最佳實踐和高級技巧可以幫助我們編寫更優(yōu)雅和可維護(hù)的代碼。 使用閉包是實現(xiàn)單例模式的一種常見方法。通過將類的實例保存在閉包中,并提供

    2024年02月09日
    瀏覽(25)
  • Unity設(shè)計模式之單例模式

    單例模式(Singleton)是設(shè)計模式中很常見的一種設(shè)計模式,目的是為了讓一個類在程序運行期間有且僅有一個實例,且方便全局訪問。 1、私有的構(gòu)造函數(shù)。 2、含有一個該類的靜態(tài)私有對象。 3、靜態(tài)的公有函數(shù)或?qū)傩?,方便用戶?chuàng)建或者獲取它本身的靜態(tài)私有對象。 當(dāng)項目

    2023年04月09日
    瀏覽(23)
  • c++設(shè)計模式之單例模式

    一個類無論創(chuàng)建多少對象 , 都只能得到一個實例 如上述代碼中,我們通過new運算符創(chuàng)建出了類A的三個對象實例,而我們現(xiàn)在要做的是,如何設(shè)計類A,使得上述代碼運行之后永遠(yuǎn)只產(chǎn)生同一個對象實例 ????????我們知道,一個類對象是通過這個類的構(gòu)造函數(shù)創(chuàng)建的,因此

    2024年01月19日
    瀏覽(26)
  • C#設(shè)計模式之單例模式

    單例模式(Singleton)保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。 單例模式的結(jié)構(gòu)圖如下所示: 對一些類來說,只有一個實例是很重要的。如何才能保證一個類只有一個實例并且這個實例易于被訪問呢? 基于程序員之間的約定或是利用全局變量嗎? 雖然這樣

    2024年02月03日
    瀏覽(22)
  • 設(shè)計模式之單例模式(懶漢, 餓漢)

    設(shè)計模式之單例模式(懶漢, 餓漢)

    單例模式是一種常用的軟件設(shè)計模式, 該模式的主要目的是確保某一個類在內(nèi)存中只能有一個實例對象, 通過單例模式的方法創(chuàng)建的類在當(dāng)前進(jìn)程中只有一個實例對象. 常見的單例模式有兩種: 餓漢式, 這里的 “餓” 意義表述不夠清晰, 用 “急” 來表述意義更加容易聯(lián)想一些

    2024年02月22日
    瀏覽(20)
  • C#--設(shè)計模式之單例模式

    C#--設(shè)計模式之單例模式

    單例模式大概是所有設(shè)計模式中最簡單的一種,如果在面試時被問及熟悉哪些設(shè)計模式,你可能第一個答的就是單例模式。 單例模式的實現(xiàn)分為兩種: 餓漢式:在靜態(tài)構(gòu)造函數(shù)執(zhí)行時就立即實例化。 懶漢式:在程序執(zhí)行過程中第一次需要時再實例化。 兩者有各自適用的場景

    2024年02月14日
    瀏覽(12)
  • 淺談設(shè)計模式之單例模式

    淺談設(shè)計模式之單例模式

    單例模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。單例模式指的是 單一的一個類 ,該類負(fù)責(zé)創(chuàng)建自己的對象,并且保證該 對象唯一 。該類提供了一種訪問其唯一對象的方法,外部需要調(diào)用該類的對象可以通過方法獲取,不需要實例化類的對象。 關(guān)鍵點: 單例

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包