java設計模式 單例設計模式的4種實現

2021-09-21 12:59:52 字數 1041 閱讀 3275

(1)餓漢式(執行緒安全)

該方式沒有執行緒安全問題,當類被解除安裝時,靜態變數被摧毀,並釋放所占有的記憶體,因此在某些特定條件下會耗費記憶體。

package cn.edu.bjfu.main;

public class maintest

}class teacher

//使外界可以通過類名. 來呼叫

public static teacher getinstance( )

}

(2)懶漢式(執行緒不安全的)

package cn.edu.bjfu.main;

public class maintest

}class teacher

//使外界可以通過類名. 來呼叫

public static teacher getinstance()

return t;

}}

因此在某些特定條件下會節約了記憶體。在多執行緒環境中,這種實現方法是完全錯誤的,根本不能保證單例的狀態。

(3)懶漢式(優化為執行緒安全)

package cn.edu.bjfu.main;

public class maintest

}class teacher

//使外界可以通過類名. 來呼叫

public static synchronized teacher getinstance()

return t;

}}

在多執行緒情形下,synchronized方法通常效率低。

(4)dcl雙檢鎖機制改進優化懶漢式

package cn.edu.bjfu.main;

public class maintest

}class teacher

//使外界可以通過類名. 來呼叫

public static teacher getinstance()

}} return t;

}}

java設計模式 單例設計模式

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

Java設計模式 單例模式

單例模式 singleton 顧名思義,就是乙個類只有乙個例項。作為物件的建立模式,單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。從具體...

java設計模式 單例模式

這個模式是很有意思,而且比較簡單,但是我還是要說因為它使用的是如此的廣泛,如此的有人緣,單例就是單 一 獨苗的意思,那什麼是獨乙份呢?你的思維是獨乙份,除此之外還有什麼不能山寨的呢?我們舉個比較難複製的物件 皇帝中國的歷史上很少出現兩個皇帝並存的時期,是有,但不多,那我們就認為皇帝是個單例模式,在這...