懶漢式(靜態內部類)
//懶漢式(靜態內部類)
//這種寫法,即解決安全問題,又解決了性能問題
//這個戴拿,沒有浪費一個字
public class Singleton4 {
//1.先聲明一個靜態內部類
//private 私有的保證別人不能修改
//static 全局唯一
//這里其實不會實例化LasyHolder,因為這里是調用的LasyHolder的屬性, 沒有new LasyHolder( ),也不需要創建LasyHolder對象
//!!靜態內部類,只有使用它的時候才加載
//(靜態內部類只有當被外部類調用到的時候才會初始化。 )
//加載一個類時,其內部類不會同時被加載。一個類被加載,當且僅當其某個靜態成員(靜態域、構造器、靜態方法等)被調用時發生。
private static class LasyHolder{
//final 為了防止內部誤操作,防止代理模式,cglib的代理模式
private static final Singleton4 INSTANCE = new Singleton4();
}
//2.將默認構造方法私有化
private Singleton4(){}
//3.同樣提供靜態方法獲取實例
//final 確保別人不能覆蓋
public static final Singleton4 getInstance(){
return LasyHolder.INSTANCE;
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。