設計模式 單例模式java例項

2021-09-24 12:51:27 字數 1450 閱讀 5188

public class ******model  

public static ******model getinstance()

}

執行緒安全,但是一開始就建立了物件,如果物件一直沒使用,就造成資源浪費,也正因為這個缺點,所有有了懶漢式,用懶載入的方式降低資源的浪費。

public class ******model  

public static ******model getinstance()

return ******model;

}}

執行緒不安全,如兩個執行緒同時呼叫了初始化方法,都進入到了if 判斷中,這時候******model 是空的,兩個執行緒都會執行 ******model= new ******model(); ,這樣就不能保證安全了。

public class ******model  

public static synchronized ******model getinstance()

return ******model;

}}

執行緒安全,但是效率低下,因為只有第一次例項化才需要同步,後面就不需要同步了,這樣寫的結果每一次呼叫都要同步,多個執行緒呼叫時速度慢。

public class ******model  

public static ******model getinstance()

} return ******model;

}}

效率上去了但是執行緒不安全,這個鎖雖然只有例項化的時候同步,例項化非空之後就不需要同步,但是如果兩個執行緒同時呼叫了初始化方法,都進入到了if 判斷中,這時候******model 是空的,兩個執行緒都會執行鎖內的的同步**塊,執行******model= new ******model();,所以不能保證安全。

public class ******model  

public static ******model getinstance()

}}

return ******model;

}}

執行緒安全並且效率高,即使有兩個執行緒進入到了同步**塊中,也會再進行一次非空判斷,所以也不會執行緒不安全。

public class ******model  

private static class ******modelinstance

public static ******model getinstance()

}

安全,並且效率高。與懶漢式相近但是確實懶載入。

Java單例模式例項

單例模式是建立模式中普遍採用的一種。使用單例模式可以確保某個類只會有乙個例項被建立。單例模式是通過下面的思想來保證的 不讓類以外的任何事物建立物件的例項。通常來講,單例可以縮減記憶體 的需求。實現方式也有很多種。單例模式分三種 懶漢式單例 餓漢式單例 登記式單例三種。單例模式主要有以下特點 1 單例...

Java設計模式 單例模式

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

java設計模式 單例模式

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