java單例設計模式

2021-09-11 16:01:44 字數 1297 閱讀 1905

單例就是該類只能返回乙個例項。

單例所具備的特點:

1.私有化的建構函式

2.私有的靜態的全域性變數

3.公有的靜態的方法

單例分為懶漢式、餓漢式和雙層鎖式

餓漢式:

public class singleton

private static singleton singleton = new singleton();

//靜態例項工廠

public static singleton getinstance()

}

懶漢式:

public class singleton2

public static singleton2 singleton2 = null;

//靜態例項工廠、

public static singleton2 getinstance()

return singleton2; }

}

**安全鎖

public class singleton3

public static singleton3 singleton3 = null;

//靜態例項工廠、

public synchronized static singleton3 getinstance()

return singleton3; }

} synchronized新增在方法上,會把整個方法都鎖住,鎖的**太多,鎖的力度太大。

雙重判定鎖

public class singleton4

private static singleton4 singleton4 = null;

public static singleton4 getinstance()

} }return singleton4; }}

只鎖幾行**,提公升效能。

通過雙重判斷來保證單列設計模式在多執行緒中的安全性,

並且它在效能方面提高了很多。

synchronized在方法上加鎖 (同步鎖)

synchronized在**塊內部加鎖 (同步**塊)

synchronized(同步鎖)

使用synchronized如何解決執行緒安全的問題?

1.synchronized在方法上加鎖

2.synchronized在**塊內部加鎖

1.懶漢 2.餓漢 3.雙重判斷

java設計模式 單例設計模式

public class main 餓漢式 空間換時間 多執行緒訪問不會建立多個物件 author admin class singleton 2建立本類物件 private static singleton s new singleton 3對外提供公共的訪問方法 public static si...

Java單例設計模式

單例設計模式也有人叫單態,基本上有兩種寫法一種是餓漢式,另外一種是懶漢式。餓漢式就是一開始就建立了例項物件 public class singleton public static singleton getintance 懶漢式是需要的時候才建立 它比較懶 而且會涉及執行緒同步問題,需要增加同步 ...

java 單例設計模式

單例設計模式 保證乙個類在記憶體中只有乙個物件。模式 模式就是解決 一類 問題的固定步驟 模式的概念最早起源於建築行業 建房子的步驟都是一樣子 打地基 澆柱子 蓋樓面 砌牆 封頂 裝修 入住軟體行業中23種設計模式 單例設計模式 模板設計模式 裝飾者設計模式 觀察者設計模式 工廠設計模式單例設計模式...