# 單例模式

單例模式

簡介:

? 單例模式為了節(jié)省系統(tǒng)資源,把一個實例化的資源不回收,想用直接調(diào)用就可以,節(jié)省了創(chuàng)建和回收的過程,提高了系統(tǒng)開發(fā)的效率

線程安全:

? 多線程下要保證被實例化一次

高性能:

延遲加載:

有七種

餓漢式

class King {
    private static final King kingInstance = new King();

    static King getInstance() {
        return kingInstance;
    }

    private King() {
    }
} 
/**
*1.線程安全性保證: private static final King kingInstance = new King();
*JVM 加載class時有一個ClassLoader有一個主動加載和被動加載 new SIngleton01()主動加載<clinit>
*在編譯階段把所有的賦值操作記入到里面)///只能運行一次保證了同步///
*/

(private:外界調(diào)用不了)

懶漢式

class king {
        private Test() {
        }
        public static Test instance = null;
        public static Test getInstance() {
                if (instance == null) {
              //多個線程判斷instance都為null時,在執(zhí)行new操作時多線程會出現(xiàn)重復情況
                        instance = new Singleton2();
                }
                return instance;
        }
}
/**
*1.單線程安全多線程不安全
*在編譯階段把所有的賦值操作記入到里面)///只能運行一次保證了同步///
*2.性能: 用的時候?qū)嵗挥玫臅r候為空 性能比懶漢式好
*3延遲加載:延遲加載
*/
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容