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

java單例模式4種使用方式分享

 更新時(shí)間:2014年02月18日 09:28:41   作者:  
到底如何寫(xiě)一個(gè)在生產(chǎn)環(huán)境中使用的單實(shí)例模式?下面是4種方式,大家參考使用吧

1、Java Concurrency In Practice的List

復(fù)制代碼 代碼如下:

public class Singleton { 
    private static class SingletonHolder { 
        public static Singleton resource = new Singleton(); 
    } 
    public static Singleton getResource() { 
        return  SingletonHolder.resource ; 
    } 

    private Singleton(){ 

    } 
}

2、effective Java

復(fù)制代碼 代碼如下:

public class Singleton { 
    public static final Singleton INSTANCE = new Singleton(); 

    private Singleton(){} 

    public void method(){ 
        //... 
    } 
    public static void main(String[] a){ 
        //調(diào)用方法。 
        Singleton.INSTANCE.method(); 
    } 
}

3、利用枚舉巧妙創(chuàng)建單實(shí)例

復(fù)制代碼 代碼如下:

/**
 * 利用枚舉巧妙創(chuàng)建單實(shí)例
 */ 
public enum Singleton { 
    INSTANCE; 
    public void method(){ 
        //... 
    } 
    public static void main(String[] a){ 
        //調(diào)用方法。 
        Singleton.INSTANCE.method(); 
    } 
}

4、雙重鎖

復(fù)制代碼 代碼如下:

public class Singleton { 
    private static volatile Singleton instance = null; 
    /**
     * 防止其他人new對(duì)象
     */ 
    private Singleton(){ 
        System.out.println("init"); 
    } 
    public static  Singleton getInstance(){ 
        if(instance == null){ 
            synchronized(Singleton.class){ 
                if(instance == null){ 
                    instance = new Singleton(); 
                } 
            } 
        } 
        return instance; 
    } 
}

相關(guān)文章

  • 詳解如何使用Java編寫(xiě)圖形化的窗口

    詳解如何使用Java編寫(xiě)圖形化的窗口

    這篇文章主要介紹了如何使用Java編寫(xiě)圖形化的窗口,是Java的本地GUI軟件開(kāi)發(fā)的基礎(chǔ),需要的朋友可以參考下
    2015-10-10
  • Java Map集合與Collection類(lèi)的使用詳解

    Java Map集合與Collection類(lèi)的使用詳解

    這篇文章主要介紹了Java Map集合的使用及Collection工具類(lèi)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-11-11
  • java中對(duì)Redis的緩存進(jìn)行操作的示例代碼

    java中對(duì)Redis的緩存進(jìn)行操作的示例代碼

    本篇文章主要介紹了java中對(duì)Redis的緩存進(jìn)行操作的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • Spring?Boot?詳細(xì)分析Conditional自動(dòng)化配置注解

    Spring?Boot?詳細(xì)分析Conditional自動(dòng)化配置注解

    首先我們先了解一下@Conditional注解,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,需要注入的Bean滿(mǎn)足給定條件才可以注入到Spring?IOC容器中
    2022-07-07
  • java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    java實(shí)現(xiàn)消息隊(duì)列的兩種方式(小結(jié))

    本文主要介紹了兩種java實(shí)現(xiàn)消息隊(duì)列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實(shí)例發(fā)送消息,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • spring-boot使用AOP統(tǒng)一處理日志

    spring-boot使用AOP統(tǒng)一處理日志

    這篇文章主要為大家詳細(xì)介紹了spring-boot使用AOP統(tǒng)一處理日志,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • spring cloud zuul 與 sentinel的結(jié)合使用操作

    spring cloud zuul 與 sentinel的結(jié)合使用操作

    這篇文章主要介紹了spring cloud zuul 與 sentinel 的結(jié)合使用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java數(shù)據(jù)結(jié)構(gòu)與算法之快速排序詳解

    java數(shù)據(jù)結(jié)構(gòu)與算法之快速排序詳解

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之快速排序,結(jié)合實(shí)例形式詳細(xì)分析了快速排序的原理、實(shí)現(xiàn)步驟、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Java設(shè)計(jì)模式之原型模式詳細(xì)解析

    Java設(shè)計(jì)模式之原型模式詳細(xì)解析

    這篇文章主要介紹了Java設(shè)計(jì)模式之原型模式詳細(xì)解析,原型模式就是用一個(gè)已經(jīng)創(chuàng)建的實(shí)例作為原型,通過(guò)復(fù)制該原型對(duì)象來(lái)創(chuàng)建一個(gè)和原型對(duì)象相同的新對(duì)象,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)戰(zhàn)之飛翔的小鳥(niǎo)小游戲

    Java實(shí)戰(zhàn)之飛翔的小鳥(niǎo)小游戲

    這篇文章主要介紹了Java實(shí)戰(zhàn)之飛翔的小鳥(niǎo)小游戲,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論