單例模式

概念

java中單例模式是一種常見的設(shè)計模式跟衅,單例模式分三種:懶漢式模式,餓漢式模式播歼、登記式單例三種伶跷。
單例模式有以下特點:

  1. 單例類只能有一個實例;
  2. 單例類必須自己創(chuàng)建自己的唯一實例秘狞;
  3. 單例類必須給所有其他對象提供這一實例叭莫。
    單例模式確保某個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例烁试。在計算機系統(tǒng)中食寡,線程池、緩存廓潜、日志對象抵皱、對話框、顯卡的驅(qū)動程序?qū)ο蟪1辉O(shè)計成單例辩蛋。這些應(yīng)用都或多或少具有資源管理器的功能呻畸。每臺計算機可以有若干個打印機,但只能有一個Printer Spooler悼院,以避免兩個打印作業(yè)同事輸出到打印機中伤为。每臺計算機可以有若干通信端口,系統(tǒng)應(yīng)當(dāng)集中管理這些通信接口,以避免一個通信端口與同時被兩個請求同時調(diào)用绞愚⌒鸬椋總之,選擇單例模式就是為了避免不一致狀態(tài)位衩。

四種線程安全的java單例

public class Singleton1 {

    private static final Singleton1 single = new Singleton1();

    private Singleton1() {

    }

    public static Singleton1 getInstance() {
        return single;
    }

}
public class Singleton2 {

    private static Singleton2 instance = null;

    private Singleton2() {

    }

    public synchronized static Singleton2 getInstance() {
        if (instance == null) {
            instance = new Singleton2();
        }
        return instance;
    }


}
public class Singleton3 {

    private static Singleton3 instance = null;

    private Singleton3() {
    }

    public static Singleton3 getInstance() {
        if (null == instance) {
            synchronized (Singleton3.class) {
                if (null == instance) {
                    instance = new Singleton3();
                }
            }
        }
        return instance;
    }
}
public class Singleton4 {

    private Singleton4() {
    }

    private static final class SingletonHolder {
        private static final Singleton4 INSTANCE = new Singleton4();
    }

    public static final Singleton4 getInstance() {
        return SingletonHolder.INSTANCE;
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裆蒸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子糖驴,更是在濱河造成了極大的恐慌僚祷,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮缕,死亡現(xiàn)場離奇詭異辙谜,居然都是意外死亡,警方通過查閱死者的電腦和手機感昼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門装哆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人定嗓,你說我怎么就攤上這事烂琴。” “怎么了蜕乡?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梗夸。 經(jīng)常有香客問我层玲,道長,這世上最難降的妖魔是什么反症? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任辛块,我火速辦了婚禮,結(jié)果婚禮上铅碍,老公的妹妹穿的比我還像新娘润绵。我一直安慰自己,他們只是感情好胞谈,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布尘盼。 她就那樣靜靜地躺著,像睡著了一般烦绳。 火紅的嫁衣襯著肌膚如雪卿捎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天径密,我揣著相機與錄音午阵,去河邊找鬼。 笑死享扔,一個胖子當(dāng)著我的面吹牛底桂,可吹牛的內(nèi)容都是我干的植袍。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼籽懦,長吁一口氣:“原來是場噩夢啊……” “哼于个!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猫十,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤览濒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拖云,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贷笛,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年宙项,在試婚紗的時候發(fā)現(xiàn)自己被綠了乏苦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡尤筐,死狀恐怖汇荐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盆繁,我是刑警寧澤掀淘,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站油昂,受9級特大地震影響革娄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冕碟,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一拦惋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧安寺,春花似錦厕妖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迎捺,卻和暖如春井仰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背破加。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工俱恶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓合是,卻偏偏與公主長得像了罪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子聪全,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 單例模式(SingletonPattern)一般被認為是最簡單泊藕、最易理解的設(shè)計模式,也因為它的簡潔易懂难礼,是項目中最...
    成熱了閱讀 4,231評論 4 34
  • 單例模式(Singleton):在應(yīng)用這個模式時娃圆,單例對象的類必須保證只有一個實例存在。許多時候整個系統(tǒng)只需要擁有...
    _SHYII閱讀 741評論 0 2
  • 概念:Java中單例模式是一種常見的設(shè)計模式蛾茉,單例模式的寫法有好幾種讼呢,這里主要介紹三種:懶漢式單例、餓漢式單例谦炬、登...
    陳小飄閱讀 305評論 0 0
  • 本文為轉(zhuǎn)載悦屏,原文:C#實現(xiàn)設(shè)計模式 —— 單例模式 介紹 作為對象的創(chuàng)建模式,單例模式確保某一個類只有一個實例键思,而...
    ChainZhang閱讀 538評論 0 1
  • 「兄ちゃん础爬、時代が変わったといっても時代に會う生き方をしないと時代に乗り遅れるよ」 “哈~?納尼吼鳞?” 「時代が変わ...
    bravo1988閱讀 293評論 0 3