欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 單例模式(懶漢式與餓漢式)

 更新時(shí)間:2017年07月21日 11:31:26   作者:沈君  
這篇文章主要介紹了java 單例模式的相關(guān)資料,這里對(duì)懶漢式與餓漢式都做了實(shí)例介紹,需要的朋友可以參考下

java 單例模式

單例模式是一種常用的軟件設(shè)計(jì)模式。在它的可信結(jié)構(gòu)中只包含一個(gè)被實(shí)例化單例的特殊類(lèi)。通過(guò)單例設(shè)計(jì)模式可以把整系統(tǒng)中的一個(gè)類(lèi)只有一個(gè)實(shí)例。

單例設(shè)計(jì)模式又分為兩種方式,懶漢式和餓漢式。

(1)懶漢式,就是只有當(dāng)調(diào)用getInstance的時(shí)候,才會(huì)初始化這個(gè)單例。

(2)餓漢式,就是一旦加載好類(lèi),就把單例初始化完成。即是調(diào)用getInstance的時(shí)候,單例是已經(jīng)存在了。

代碼如下:

懶漢式單例

/**
 * Description:
 * 一、設(shè)計(jì)了一個(gè)懶漢式單例
 * 
 * @author lee
 * */
public class SingleMode {

  public static SingleMode s = null;
  /**
   * Description:
   * 私有化構(gòu)造函數(shù)
   * 
   * */
  private SingleMode(){} 

  /**
   * Description:
   * 提供一個(gè)方法來(lái)獲取該單例
   * 
   * @return s 返回一個(gè)單例
   * */
  public static SingleMode getInstance(){

    //保證了線(xiàn)程安全,又減輕了資源加載和性能上的負(fù)擔(dān)
    //即是在創(chuàng)建一次對(duì)象后,不再需要線(xiàn)程鎖了。
    if(s==null){
      synchronized(""){
        if(s==null){
          s = new SingleMode();
        }
      }
    }

    return s;
  }

}



餓漢式單例

/**
 * Description:
 * 二、設(shè)計(jì)了一個(gè)餓漢式單例
 * 
 * @author lee
 * */
class SingleMode1{
  public static final SingleMode1 s = new SingleMode1();

  /**
   * Description:
   * 私有化構(gòu)造函數(shù)
   * 
   * */
  private SingleMode1(){}

  /**
   * Description:
   * 提供一個(gè)方法來(lái)獲取該單例
   * 
   * @return s 返回一個(gè)單例
   * */
  public static SingleMode1 getInstance(){
    return s;
  }

}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的示例代碼

    Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-09-09
  • JavaSE詳細(xì)講解異常語(yǔ)法

    JavaSE詳細(xì)講解異常語(yǔ)法

    異常就是不正常,比如當(dāng)我們身體出現(xiàn)了異常我們會(huì)根據(jù)身體情況選擇喝開(kāi)水、吃藥、看病、等 異常處理方法。 java異常處理機(jī)制是我們java語(yǔ)言使用異常處理機(jī)制為程序提供了錯(cuò)誤處理的能力,程序出現(xiàn)的錯(cuò)誤,程序可以安全的退出,以保證程序正常的運(yùn)行等
    2022-05-05
  • TC?集群Seata1.6高可用架構(gòu)源碼解析

    TC?集群Seata1.6高可用架構(gòu)源碼解析

    這篇文章主要為大家介紹了TC?集群Seata1.6高可用架構(gòu)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源案例分析

    Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源案例分析

    這篇文章主要介紹了Spring Boot + Mybatis 實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源,需要的朋友可以參考下
    2018-11-11
  • Java中的SynchronousQueue隊(duì)列詳解

    Java中的SynchronousQueue隊(duì)列詳解

    這篇文章主要介紹了Java中的SynchronousQueue隊(duì)列詳解,SynchronousQueue是BlockingQueue的一種,所以SynchronousQueue是線(xiàn)程安全的,SynchronousQueue和其他的BlockingQueue不同的是SynchronousQueue的capacity是0,需要的朋友可以參考下
    2023-12-12
  • Java 封裝基礎(chǔ)知識(shí)

    Java 封裝基礎(chǔ)知識(shí)

    這篇文章主要介紹了Java 封裝的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • SpringBoot項(xiàng)目導(dǎo)出jar包及瘦身部署方式

    SpringBoot項(xiàng)目導(dǎo)出jar包及瘦身部署方式

    今天項(xiàng)目要求Nginx+jar包運(yùn)行多個(gè)項(xiàng)目,在此記錄一下部署的過(guò)程,其中借鑒了好多網(wǎng)上前輩的經(jīng)驗(yàn),感謝各位的無(wú)私分享
    2024-07-07
  • spring用戶(hù)通過(guò)交互界面登錄成功的實(shí)現(xiàn)

    spring用戶(hù)通過(guò)交互界面登錄成功的實(shí)現(xiàn)

    本文主要介紹了spring用戶(hù)通過(guò)交互界面登錄成功的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    在Java編程語(yǔ)言中集合框架是處理對(duì)象組的重要工具,主要包括List、Set和Map接口,這些接口及其實(shí)現(xiàn)類(lèi)提供了豐富的功能,這篇文章主要給大家介紹了關(guān)于List、Map、Set接口在Java中的存取元素特點(diǎn),需要的朋友可以參考下
    2024-08-08
  • Springboot的yml配置文件用法

    Springboot的yml配置文件用法

    這篇文章主要介紹了Springboot的yml配置文件用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論