最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 中單例模式餓漢式與懶漢式的對(duì)比

 更新時(shí)間:2017年08月16日 11:21:40   投稿:lqh  
這篇文章主要介紹了java 中單例模式餓漢式與懶漢式的對(duì)比的相關(guān)資料,這里對(duì)這兩種單例模式進(jìn)行對(duì)比,希望大家能理解并應(yīng)用,需要的朋友可以參考下

java 中單例模式餓漢式與懶漢式的對(duì)比

概念:

保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。

以前我們的做法是設(shè)置一個(gè)全局變量,也就是讓它使得一個(gè)對(duì)象被訪問。但是它不能防止你實(shí)例多個(gè)對(duì)象。這時(shí)我們可以讓類自身負(fù)責(zé)保存它的唯一實(shí)例,這個(gè)類可以保證沒有其他實(shí)例可以被創(chuàng)建,并且提供一個(gè)訪問該實(shí)例的方法。

通過上面的描述,我們可以看到單例模式有以下特點(diǎn):

  1、單例類只能有一個(gè)實(shí)例。
  2、單例類必須自己自己創(chuàng)建自己的唯一實(shí)例。
  3、單例類必須給所有其他對(duì)象提供這一實(shí)例。

因此,創(chuàng)建一個(gè)類的實(shí)例的具體方法(要素)是:

      1、 私有的、靜態(tài)的成員變量
      2、 私有的構(gòu)造方法
      3、 公共的、靜態(tài)的一個(gè)入口方法

根據(jù)上面的具體方法,我們來看一下下面的代碼

public class Test { 
  private static Test instance = new Test ();  
   
  private Test (){ 
   
  } 
   
  public static Test GetInstance(){ 
    return instance; 
  } 
} 

從上面的代碼中我們看出,當(dāng)類加載到內(nèi)存時(shí),在我們調(diào)用GetInstance()方法之前,就已經(jīng)在內(nèi)存中創(chuàng)建了一個(gè)instance對(duì)象。也就是說,不管我是否想用這個(gè)方法,在內(nèi)存中就已經(jīng)存在instance這個(gè)對(duì)象了,此時(shí)這個(gè)對(duì)象就是多余對(duì)象了,這樣就會(huì)占用內(nèi)存資源。因此我們將這種單例模式稱作“餓漢式”單例模式。其實(shí)就是一個(gè)“預(yù)加載”的過程。

而“懶漢式”單例模式(也就是“延遲式”創(chuàng)建對(duì)象)則是在我們需要的時(shí)候才去創(chuàng)建這個(gè)對(duì)象。這樣就避免了提前創(chuàng)建對(duì)象占用內(nèi)存資源。



public class Test { 
  private static Test instance = null; 
   
  private Test (){ 
     
  } 
  public static Test getInstance(){ 
    if (instance == null) then { 
      instance = new Test (); 
    } 
    return instance; 
  } 
} 

但是,通過觀察上面的代碼,我們可以看出其中還是存在一些問題的。假設(shè),有多個(gè)進(jìn)程同時(shí)調(diào)用getInstance()方法,這樣就可能出現(xiàn)同時(shí)創(chuàng)建多個(gè)對(duì)象,那這就不是單例模式了。因此,我們可以加入“同步”這個(gè)關(guān)鍵字使得我們的代碼更加的嚴(yán)謹(jǐn)。改進(jìn)之后是這樣的

public class Test { 
  private static Test instance = null; 
   
  private Test (){ 
     
  } 
  public static synchronized Test getInstance(){ 
    if (instance == null) then { 
      instance = new Test (); 
    } 
    return instance; 
  } 
} 

 以上就是java中兩種單例模式的對(duì)比,如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java獲取請(qǐng)求頭、參數(shù)、路徑方式

    Java獲取請(qǐng)求頭、參數(shù)、路徑方式

    這篇文章主要介紹了Java獲取請(qǐng)求頭、參數(shù)、路徑方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java如何讀取resources目錄和同級(jí)目錄文件

    java如何讀取resources目錄和同級(jí)目錄文件

    介紹了Java中讀取resources目錄和同級(jí)目錄文件的方法,并討論了在IDE和發(fā)布環(huán)境中可能遇到的問題,通過測(cè)試發(fā)現(xiàn),執(zhí)行目錄可能會(huì)影響文件讀取,建議在使用`user.dir`時(shí)注意jar包的運(yùn)行目錄問題
    2024-12-12
  • Java 異步回調(diào)機(jī)制實(shí)例分析

    Java 異步回調(diào)機(jī)制實(shí)例分析

    這篇文章主要介紹了Java 異步回調(diào)機(jī)制實(shí)例解析的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Sentinel熱點(diǎn)key限流的實(shí)現(xiàn)詳解

    Sentinel熱點(diǎn)key限流的實(shí)現(xiàn)詳解

    這篇文章主要介紹了Sentinel熱點(diǎn)key限流的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 處理java異步事件的阻塞和非阻塞方法分析

    處理java異步事件的阻塞和非阻塞方法分析

    這篇文章主要介紹了處理java異步事件的阻塞和非阻塞方法分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,阻塞與非阻塞關(guān)注的是交互雙方是否可以彈性工作。,需要的朋友可以參考下
    2019-06-06
  • idea如何關(guān)閉右側(cè)類顯示方法

    idea如何關(guān)閉右側(cè)類顯示方法

    這篇文章主要介紹了idea如何關(guān)閉右側(cè)類顯示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • IDEA2020.1使用LeetCode插件運(yùn)行并調(diào)試本地樣例的方法詳解

    IDEA2020.1使用LeetCode插件運(yùn)行并調(diào)試本地樣例的方法詳解

    這篇文章主要介紹了IDEA2020.1使用LeetCode插件運(yùn)行并調(diào)試本地樣例的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-09
  • java實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件

    java實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)從網(wǎng)絡(luò)下載多個(gè)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • SpringCache快速使用及入門案例

    SpringCache快速使用及入門案例

    Spring Cache 是Spring 提供的一整套的緩存解決方案,它不是具體的緩存實(shí)現(xiàn),本文主要介紹了SpringCache快速使用及入門案例,感興趣的可以了解一下
    2023-08-08
  • SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的三種方式小結(jié)

    SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的三種方式小結(jié)

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論

安龙县| 金沙县| 且末县| 和龙市| 海城市| 阳江市| 福州市| 射洪县| 丰镇市| 资源县| 金昌市| 噶尔县| 喀喇沁旗| 铜川市| 平陆县| 绥滨县| 宁阳县| 六安市| 镇远县| 隆回县| 如皋市| 鄂托克旗| 吉木萨尔县| 娱乐| 林周县| 高青县| 铁岭市| 康定县| 沂水县| 怀柔区| 壤塘县| 榆社县| 罗江县| 新巴尔虎右旗| 容城县| 湘潭市| 安义县| 襄汾县| 茶陵县| 朔州市| 修水县|