單例模式

定義:一個類有且僅有一個實例,并且自行實例化向整個系統提供

應用:像Windows的任務管理器,做網站訪問次數統計(當一個類需要頻繁應用銷毀操作時單例比較適合)

優點:節約內存;限制了實例的個數,有利于Java垃圾回收

懶漢式:延遲加載,省資源,不加同步鎖可能造成并發,加同步鎖訪問處理效率變慢(推薦使用靜態內部類)

public class Singleton {

private static Singleton singleton;

private Singleton() {

}

public static synchronized Singleton getSingleton() {

if (singleton == null) {

singleton = new Singleton();

}

return singleton;

}

}

②餓漢式:線程安全,多個線程進行訪問時不會實例化多個對象;

缺點是無論是否用到該實例都會被初始化,無故的開銷變大

public class Singleton2 {

private static Singleton2 singleton2 = new Singleton2();

private Singleton2() {

}

public static Singleton2 getsingleton2() {

return singleton2;

}

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容