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

Java——單例設(shè)計模式

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

什么是設(shè)計模式?

設(shè)計模式是在大量的實踐中總結(jié)和理論化之后優(yōu)選的代碼結(jié)構(gòu)、編程風(fēng)格、以及解決問題的思考方式。設(shè)計模式免去我們自己再思考和摸索。就像是經(jīng)典的棋譜,不同的棋局,我們用不同的棋譜、“套路”。

經(jīng)典的設(shè)計模式共有23種。每個設(shè)計模式均是特定環(huán)境下特定問題的處理方法。
Java——單例設(shè)計模式,JavaSE,java,設(shè)計模式,單例模式

什么是單例設(shè)計模式?

就像它的名字一樣,只能存在一個對象實例,所以叫單例模式。
所謂類的單例設(shè)計模式,就是采取一定的方法保證在整個的軟件系統(tǒng)中,對某個類只能存在一個對象實例,并且該類只提供一個取得其對象實例的方法。

實現(xiàn)思路

如果我們要讓類在一個虛擬機(jī)中只能產(chǎn)生一個對象,我們首先必須將類的構(gòu)造器的訪問權(quán)限設(shè)置為private,這樣,就不能用new操作符在類的外部產(chǎn)生類的對象了,但在類內(nèi)部仍可以產(chǎn)生該類的對象。因為在類的外部開始還無法得到類的對象,只能調(diào)用該類的某個靜態(tài)方法以返回類內(nèi)部創(chuàng)建的對象,靜態(tài)方法只能訪問類中的靜態(tài)成員變量,所以,指向類內(nèi)部產(chǎn)生的該類對象的變量也必須定義成靜態(tài)的。

餓漢式

class Singleton {
    // 1.私有化構(gòu)造器
    private Singleton() {
    }

    // 2.內(nèi)部提供一個當(dāng)前類的實例
    // 4.此實例也必須靜態(tài)化
    private static Singleton single = new Singleton();

    // 3.提供公共的靜態(tài)的方法,返回當(dāng)前類的對象
    public static Singleton getInstance() {
        return single;
    }
}

懶漢式

class Singleton {
    // 1.私有化構(gòu)造器
    private Singleton() {
    }
    // 2.內(nèi)部提供一個當(dāng)前類的實例
    // 4.此實例也必須靜態(tài)化
    private static Singleton single;
    // 3.提供公共的靜態(tài)的方法,返回當(dāng)前類的對象
    public static Singleton getInstance() {
        if(single == null) {
            single = new Singleton();
        }
        return single;
    }
}

兩種方式的對比

餓漢式:

  • 特點:立即加載,即在使用類的時候已經(jīng)將對象創(chuàng)建完畢。
  • 優(yōu)點:實現(xiàn)起來簡單;沒有多線程安全問題。
  • 缺點:當(dāng)類被加載的時候,會初始化static的實例,靜態(tài)變量被創(chuàng)建并分配內(nèi)存空間,從這以后,這個static的實例便一直占著這塊內(nèi)存,直到類被卸載時,靜態(tài)變量被摧毀,并釋放所占有的內(nèi)存。因此在某些特定條件下會耗費內(nèi)存

懶漢式:文章來源地址http://www.zghlxwxcb.cn/news/detail-676727.html

  • 特點:延遲加載,即在調(diào)用靜態(tài)方法時實例才被創(chuàng)建。
  • 優(yōu)點:實現(xiàn)起來比較簡單;當(dāng)類被加載的時候,static的實例未被創(chuàng)建并分配內(nèi)存空間,當(dāng)靜態(tài)方法第一次被調(diào)用時,初始化實例變量,并分配內(nèi)存,因此在某些特定條件下會節(jié)約內(nèi)存。
  • 缺點:在多線程環(huán)境中,這種實現(xiàn)方法是完全錯誤的,線程不安全,根本不能保證單例的唯一性。

到了這里,關(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è)計模式——單例模式

    單例模式是應(yīng)用最廣的設(shè)計模式之一,也是程序員最熟悉的一個設(shè)計模式,使用單例模式的類必須保證只能有創(chuàng)建一個對象。 今天主要是回顧一下單例模式,主要是想搞懂以下幾個問題 為什么要使用單例? 如何實現(xiàn)一個單例? 單例存在哪些問題? 單例對象的作用域的范圍

    2024年02月16日
    瀏覽(22)
  • java設(shè)計模式-單例

    單例模式是一種創(chuàng)建型設(shè)計模式,它可以保證一個類只有一個實例,并提供全局訪問點。單例模式在實際開發(fā)中經(jīng)常使用,可以避免多個實例引起的資源浪費和同步問題。常見的java實現(xiàn)方式有多種。 餓漢式單例模式是指在類加載時就創(chuàng)建了單例對象,因此在調(diào)用時不需要再

    2024年01月18日
    瀏覽(26)
  • 設(shè)計模式篇(Java):單例模式

    設(shè)計模式篇(Java):單例模式

    上一篇:設(shè)計模式篇(Java):前言(UML類圖、七大原則) 所謂類的單例設(shè)計模式,就是采取一定的方法保證在整個的軟件系統(tǒng)中,對某個類只能存在一個對象實例,并且該類只提供一個取得其對象實例的方法(靜態(tài)方法)。 構(gòu)造器私有化 (防止 new ) 類的內(nèi)部創(chuàng)建對象 向外暴露一個靜

    2024年02月11日
    瀏覽(29)
  • Java設(shè)計模式---單例 工廠 代理模式

    單例模式是設(shè)計模式中的一種,屬于創(chuàng)建型模式。在軟件工程中,單例模式確保一個類只有一個實例,并提供一個全局訪問點。這種模式常用于那些需要頻繁實例化然后引用,且創(chuàng)建新實例的開銷較大的類,例如數(shù)據(jù)庫連接池、緩存管理等。 意圖 :保證一個類僅有一個實例

    2024年01月24日
    瀏覽(28)
  • Java——單例設(shè)計模式

    Java——單例設(shè)計模式

    設(shè)計模式是在大量的實踐中總結(jié)和理論化之后優(yōu)選的代碼結(jié)構(gòu)、編程風(fēng)格、以及解決問題的思考方式。設(shè)計模式免去我們自己再思考和摸索。就像是經(jīng)典的棋譜,不同的棋局,我們用不同的棋譜、“套路”。 經(jīng)典的設(shè)計模式共有23種。每個設(shè)計模式均是特定環(huán)境下特定問題的

    2024年02月11日
    瀏覽(27)
  • 【JAVA】Java 中什么叫單例設(shè)計模式?請用 Java 寫出線程安全的單例模式

    【JAVA】Java 中什么叫單例設(shè)計模式?請用 Java 寫出線程安全的單例模式

    ?? 個人博客: 個人主頁 ?? 個人專欄: JAVA ???? 功不唐捐,玉汝于成 目錄 前言 正文 懶漢式(Lazy Initialization): 雙重檢查鎖定(Double-Checked Locking): 結(jié)語 我的其他博客 在軟件設(shè)計中,單例設(shè)計模式是一種重要的設(shè)計思想,它確保了一個類只有一個實例,并提供了一

    2024年01月15日
    瀏覽(23)
  • Java設(shè)計模式之單例模式

    Java設(shè)計模式之單例模式

    定義:保證一個類僅有一個實例,并提供一個全局訪問點 類型:創(chuàng)建型 想確保任何情況下都絕對只有一個實例 例如:線程池,數(shù)據(jù)庫連接池一般都為單例模式 單例模式優(yōu)點 在內(nèi)存中只有一個實例,減少內(nèi)存開銷 可以避免對資源的多重占用 設(shè)置全局訪問點,嚴(yán)格控制訪問

    2024年02月02日
    瀏覽(56)
  • Java設(shè)計模式(八)— 單例模式3

    Java設(shè)計模式(八)— 單例模式3

    單例模式之靜態(tài)內(nèi)部類 單例模式之枚舉方式 單例模式之JDK源碼分析 Hello,小伙伴們,歡迎來到柚子的博客~讓我們一起成長吧o( ̄▽ ̄)ブ 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 代碼如下(示例): 類被裝載的時候,類里面的靜態(tài)內(nèi)部類也是會被裝載的,而且線

    2024年02月09日
    瀏覽(55)
  • 03-JAVA設(shè)計模式-單例模式詳解

    03-JAVA設(shè)計模式-單例模式詳解

    單例模式(Singleton Pattern)是設(shè)計模式中的一種,它確保一個類僅有一個實例,并提供一個全局訪問點來訪問該實例。這種設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。 單例模式的應(yīng)用場景十分廣泛,主要涉及需要頻繁使用某個對象而又不想重復(fù)創(chuàng)建的情況

    2024年04月13日
    瀏覽(30)
  • java設(shè)計模式-單例模式(Singleton)

    單例模式(Singleton)就是一個類只能有一個實例,自行實例化,并向系統(tǒng)提供這一實例,這個類就是單例類。單例模式的特點: 一個類只能有一個實例; 單例類自己實例化; 單例類給其它對象提供這個單一實例。 資源管理類經(jīng)常被設(shè)計為單例模式,例如管理屬性文件的類。

    2024年02月15日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包