//單例模式 ①
public
class singleton
//宣告static,在jvm載入單例類時,單例物件就會被建立
private
static singleton singletion = new singleton();
public
static singleton getinstance()
}//①中,由於jvm在載入單例類時,單例物件就被建立;當單例類在其他**中扮演了其他的角色時,那麼在任何使用這個單例類的地方都會初始化這個單例變數。
//不管是否有被用到。所以,當建立單例很慢時,這種方式就存在不足了。
//解決思路:即在jvm載入單例類時,單例物件沒有被建立;當需要使用單例物件時,才建立
//單例模式 ②
//不足:雖然實現了延遲載入功能,但在多執行緒環境下,耗時要比①高
public
class singleton
private
static singleton singleton = null;
//同步,防止多執行緒環境下建立多個例項
public
static
synchronized singleton getinstance()
return singleton;}}
//單例模式 ③
//當singleton載入時,不會初始化其內部類;只有在呼叫getinstance這個方法時,才會載入內部類singletonholder,實現了延遲載入的功能,又降低系統效能。
public
class singleton
private
static
class singletonholder
public
static singleton getinstance()
}
Java效能優化之設計模式 單例模式
單例模式是一種常用的軟體設計模式,常被用於乙個系統中乙個類只存在乙個例項的場合,從而方便對例項個數的控制並節約系統資源。簡而言之,單例模式就是保證乙個類最多只能存在乙個例項物件。使用場景 1 對應於頻繁使用的物件,可以省略建立物件所花費的時間,對於一些大型物件,是一筆可觀的開銷。2 由於減少了new...
優化單例模式
單例模式 用於產生物件的具體例項,可以確保系統中乙個類只產生乙個例項。好處是,省略建立物件所花費的時間 減少系統記憶體的使用率,降低gc壓力,縮短gc停頓時間。餓漢模式 public class singleton private static singleton instance new sing...
JAVA單例模式優化
說說 餓漢式與懶漢式 餓漢式 是執行緒安全的 類載入的時候,就會生成例項物件,未支援 延遲載入,在還未用到之前,一直占用記憶體。用內部類的形式實現單例,既可以解決延遲載入,也不必使用同步關鍵字 public class staticsingleton private static class sin...