關於單例模式的兩種經典實現(餓漢式和懶漢式)

2021-10-06 04:03:56 字數 992 閱讀 6430

//餓漢式單例,類載入在整個生命週期中只會被載入一次

public

class

singleton1

//提供指向自己的私有靜態引用(類載入時就建立),執行緒安全

private

static singleton1 singleton1 =

newsingleton1()

;//給外部獲取例項的方法

public

static singleton1 getsingleton1()

}

//懶漢式單例

public

class

singleton2

//提供私有靜態引用指向自身

private

static singleton2 singleton2 = null;

//靜態方法呼叫時,例項化物件

public

static

synchronized singleton2 getsingleton2()

return singleton2;

}

package com.huangliutan;

//單例模式-雙重檢查

public

class

singletondoublecheck

//私有靜態引用指向例項本身,使用 volatile 關鍵字,防止重排序

private

static

volatile singletondoublecheck singletondoublecheck ;

//提供獲取例項公共靜態方法

public

static singletondoublecheck getsingletondoublecheck()

}}return singletondoublecheck;

}}

兩種單例模式

一。單例模式 有以下的特點 eg。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。為了避免不一致狀態 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。1 懶漢式單例 singleton通過將構造...

單例模式 餓漢式 兩例

單例模式建立的幾種方式 1.餓漢式 1 構造器私有化同時建立物件 2 宣告乙個私有靜態屬性 3 對外提供訪問屬性的靜態方法 author administrator public class singleton 提供乙個可以讓外部訪問class的靜態方法,可以直接訪問 public static s...

關於單例模式的N種實現方式

在開發中經常用到單例模式,單例模式也算是設計模式中最容易理解,也是最容易手寫 的模式,所以也常作為面試題來考。所以想總結一下單例模式的理論知識,方便同學們面試使用。單例模式實現的方式只有兩種型別,一種是餓漢式 類載入時就初始化 一種是懶漢式 類載入時不初始化 餓漢式沒什麼可講究的因為它既簡單也執行緒...