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

Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析

 更新時(shí)間:2020年04月03日 14:22:29   作者:dirsoen  
這篇文章主要介紹了Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

單例模式的幾種實(shí)現(xiàn)方式:

一:餓漢式單例

方式一:枚舉方式獲得單例對象

方式二:靜態(tài)屬性獲得單例對象

方式三:靜態(tài)方法獲得單例對象

二:懶漢式單例

方式一:靜態(tài)方法獲得單例對象(線程安全)

方式二:內(nèi)部類方式去獲取單例對象

示例:

惡漢式:方式一

enum Singleton{
  INSTANCE;//單例
}

惡漢式:方式二

class Singleton{
  public static final Singleton INSTANCE = new Singleton();//單例
  private Singleton(){}
}

惡漢式:方式三

class Singleton{
  private static final Singleton INSTANCE = new Singleton();//單例
  private Singleton(){}
  public static Singleton getInstance(){
    return INSTANCE;
  }
}

懶漢式:方式一

class Singleton{
	  private static Singleton instance;
	  private Singleton(){
	}
	  public static Singleton getInstance(){
		    //存在線程安全問題(多線程的時(shí)候,不一定是單例)
		    
		/*if(null == instance){
      instance = new Singleton();
    }
    return instance;*/
		    if(null == instance){
			//提升代碼效率,避免每一次都去走同步代碼塊
			      synchronized(Singleton.class){
				        if(null == instance){
					          instance = new Singleton();
				}
				        return instance;
				        
			}
			 
		}
		      return instance;
		   
	}
}
}

懶漢式:方式二

class Singleton{
  private Singleton(){}
  private static class Inner{
    public static final Singleton INSTANCE = new Singleton();
  }
  public static Singleton getInstance(){
    return Inner.INSTANCE;
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中IO的NIO通道解析

    Java中IO的NIO通道解析

    這篇文章主要介紹了Java中IO的NIO通道解析,NIO 提供了與傳統(tǒng) BIO 模型中的 Socket 和 ServerSocket 相對應(yīng)的 SocketChannel 和 ServerSocketChannel 兩種不同的套接字通道實(shí)現(xiàn),需要的朋友可以參考下
    2024-01-01
  • Java中常用的設(shè)計(jì)模式之模板模式詳解

    Java中常用的設(shè)計(jì)模式之模板模式詳解

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 解決SpringBoot中使用@Transactional注解遇到的問題

    解決SpringBoot中使用@Transactional注解遇到的問題

    這篇文章主要介紹了SpringBoot中使用@Transactional注解遇到的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring?Boot分離配置文件的多種方式總結(jié)

    Spring?Boot分離配置文件的多種方式總結(jié)

    Spring Boot可以外部化程序配置,以便可以在不同環(huán)境中使用相同的應(yīng)用程序代碼;當(dāng)然Spring Boot可以將配置文件進(jìn)行拆分,以便于激活不同的運(yùn)行環(huán)境,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Spring?Boot分離配置文件的多種方式,需要的朋友可以參考下
    2022-11-11
  • SpringBoot在容器中創(chuàng)建實(shí)例@Component和@bean有什么區(qū)別

    SpringBoot在容器中創(chuàng)建實(shí)例@Component和@bean有什么區(qū)別

    這篇文章主要介紹了SpringBoot在容器中創(chuàng)建實(shí)例@Component和@bean有什么區(qū)別,在Spring Boot中,@Component注解和@Bean注解都可以用于創(chuàng)建bean。它們的主要區(qū)別在于它們的作用范圍和創(chuàng)建方式
    2023-03-03
  • idea不使用maven如何將項(xiàng)目打包

    idea不使用maven如何將項(xiàng)目打包

    使用IDEA 2021版本,不借助Maven進(jìn)行打WAR包的步驟是:首先點(diǎn)擊Project Structure,然后點(diǎn)擊Artifacts,接著選擇需要的打包類型,設(shè)置好包的名稱,最后進(jìn)行打包,這種方法適用于不使用Maven進(jìn)行項(xiàng)目管理的情況
    2024-09-09
  • Java單例模式實(shí)現(xiàn)的幾種方式

    Java單例模式實(shí)現(xiàn)的幾種方式

    這篇文章主要介紹了Java單例模式實(shí)現(xiàn)的幾種方式的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Gateway如何實(shí)現(xiàn)全局跨域

    Gateway如何實(shí)現(xiàn)全局跨域

    這篇文章主要介紹了Gateway如何實(shí)現(xiàn)全局跨域問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • java方法重寫時(shí)需要注意的問題

    java方法重寫時(shí)需要注意的問題

    大家好,本篇文章主要講的是java方法重寫時(shí)需要注意的問題,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Spring和Spring?Boot的區(qū)別及說明

    Spring和Spring?Boot的區(qū)別及說明

    這篇文章主要介紹了Spring和Spring?Boot的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論

漳浦县| 乌兰浩特市| 和田市| 巴塘县| 太仆寺旗| 永平县| 柳州市| 和硕县| 应城市| 蒙自县| 青田县| 德庆县| 改则县| 沧州市| 徐汇区| 蚌埠市| 海安县| 钟祥市| 肥西县| 铜山县| 北宁市| 灌云县| 长子县| 宣化县| 永昌县| 海原县| 团风县| 太湖县| 平顺县| 勐海县| 龙州县| 沂源县| 和林格尔县| 南乐县| 深州市| 加查县| 色达县| 临泉县| 鲁甸县| 农安县| 和平县|