java單例模式

2021-07-04 06:55:12 字數 816 閱讀 9672

public

static dbopenhelper

getinstance(context context)

return instance; }

。。。。

1.單例模式:常用,可以重複利用同乙個物件,避免產生過多重複的物件。

public class 

singletonpattern 

public static 

singletonpattern

getinstance()

return this.

singletonpattern; }

}我們來看紅色的那一部分,假如現在有兩個執行緒a 和執行緒b,執行緒a 執行到 this.singletonpattern =

new singletonpattern(),正在申請記憶體分配,可能需要0.001 微秒,就在這0.001 微秒之內,執行緒b 執

行到if(this.singletonpattern == null),你說這個時候這個判斷條件是true 還是false?是true,那

然後呢?執行緒b 也往下走,於是乎就在記憶體中就有兩個singletonpattern 的例項了,看看是不是出問題了?

解決方法如下:

public class singletonpattern

public 

synchronized static singletonpattern getinstance() }

看紅色那部分,直接new乙個物件傳遞給類的成員變數singletonpattern,你要的時候getinstance()直接返回給你,解決問題!

java單例模式

第一種方法 public class singleton private static singleton singleton new singleton public static singleton getinstance 第二種方法 public class singleton private...

Java 單例模式

單例模式特點 1 單例類只能有乙個例項。2 單例類必須自己自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。一 餓漢式單例 基於classloder機制避免了多執行緒的同步問題,使用較多 public class singleton 這裡提供了乙個供外部訪問本class的靜態方法,可...

Java單例模式

單例模式的意圖是為了確保乙個類有且僅有乙個例項,並為它提供乙個全域性訪問點。單例模式通過隱藏建構函式,提供物件建立的唯一入口點,從而將類的職責集中在類的單個例項中。design patterns一書中把單例模式歸類為 建立型 模式,意圖是在表明單例物件承擔了其他物件所要依賴的職責。單例模式的優點 在...