優化單例模式

2021-07-06 10:23:34 字數 752 閱讀 5573

單例模式

用於產生物件的具體例項,可以確保系統中乙個類只產生乙個例項。好處是,省略建立物件所花費的時間;減少系統記憶體的使用率,降低gc壓力,縮短gc停頓時間。

餓漢模式

public class singleton

private static singleton instance = new singleton();

public static singleton getinstance()

}

懶漢模式

public class singleton

private static singleton instance = null;

public static synchronized singleton getinstance()

}

為了使用延遲載入引入的同步關鍵字,是為了在多執行緒環境中避免同時建立多個例項。但是降低了系統效能,改進如下:

public class staticsingleton

private static class singletonholder

public static staticsingleton getinstance()

}

使用內部類來維護單例的例項,當類被載入jvm中時,並不會初始化內部類,只有訪問getinstance方法時才會載入holder,初始化例項。

JAVA單例模式優化

說說 餓漢式與懶漢式 餓漢式 是執行緒安全的 類載入的時候,就會生成例項物件,未支援 延遲載入,在還未用到之前,一直占用記憶體。用內部類的形式實現單例,既可以解決延遲載入,也不必使用同步關鍵字 public class staticsingleton private static class sin...

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

單例模式加鎖優化問題

單例模式特點 單例模式應用場景 單例模式型別 優點 一開始就建立例項,執行緒安全 缺點 佔記憶體,耗資源 public class singleton 建立公有靜態例項 public static singleton getinstance 優點 呼叫例項靜態方法時,沒有建立例項,再建立 合理利用資...