/**
* 單列模式
* 餓漢模式-靜態**塊的實現
* * 優點:沒有加鎖,執行效率會提高。它基於classloder機制避免了多執行緒的同步問題
* 缺點:類載入時就初始化,沒有達到lazy loading的效果,浪費記憶體。
*/public
class
singletonstaticdemo
private
singletonstaticdemo()
public
static singletonstaticdemo getinstance()
}
/**
* 餓漢式的靜態變數的方式
* 可能造成記憶體浪費
* */
public
class
singletondemo02
}class
singleton2
//2、本類內部建立物件例項
private
static singleton2 instance;
//3、在靜態**塊中,建立單列物件
static
//4、提供乙個公有的靜態方法,返回例項物件
public
static singleton2 getinstance()
}
/**
* 單例模式-懶漢式
* 執行緒不安全的
* **/public
class
singletondemo03
}class
singleton03
public
static singleton03 getsingleton03()
return singleton03;
}}
/**
* 單例模式-雙重檢查
* 保證了執行緒安全
* 延遲載入,效率較高
* */
public
class
singletondemo05
}class
singleton05
public
static singleton05 getsingleton05()
}}return singleton05;
}}
/**
* 單例模式-靜態內部類
* 1)採用了類裝載的機制保證初始化例項時只有乙個執行緒
* 2)靜態內部誒方式在singleton類被裝載時並不會立即例項化,而是在需要例項化時,呼叫getinstance方法
* 才會裝載singletonstance類,從而完成singleton的例項化
* 3)類的靜態屬性只會在第一次載入類的時候初始化,所以在這裡,jvm幫助我們保證了執行緒的安全性,在類進行初始化時,別的執行緒無法進入的
* 4)避免了執行緒不安全,利用靜態內部類特點實現延遲載入,效率高
* */
public
class
singletiondemo06
}class
singleton06
//靜態內部類,該類中有乙個靜態屬性singleton
private
static
class
singletoninstance
//提供乙個靜態的公有方法,直接返回singletoninstance.instance
public
static singleton06 getsingleton06()
}
/**
* 列舉方式
**/public
class
singletondemo07
}enum singleton07
}
設計模式 單列模式
何為設計模式呢?簡單的說就是能重複利用的解決方案,當碰到a專案也出現這種情況,b專案也出現這種情況 那麼是否能把這懂實現功能抽象出來,形成一種解決方案.單列模式 顧名思義就是乙個例項 即乙個物件只能初始化一次 作用 減少開闢記憶體空間,節約記憶體開銷 class program 因為a物件在記憶體堆...
設計模式 單列模式
原文 單例模式是最常用到的設計模式之一,熟悉設計模式的朋友對單例模式都不會陌生。一般介紹單例模式的書籍都會提到餓漢式和懶漢式這兩種實現方式。但是除了這兩種方式,本文還會介紹其他幾種實現單例的方式,讓我們來一起看看吧。單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候...
設計模式 單列模式
構造方法私有化,只有自己的類能訪問,在自己的類中提供乙個方法訪問該例項物件。單例類的所有例項化得到的都是相同的乙個例項 系統記憶體中只存在乙個物件,因此可以節約系統資源 package com.lb author lb remarks 餓漢式 類初始化時,會立即載入該物件,執行緒天生安全,呼叫效率高...