當需要共享的變量很多時,使用static變量占用內存的時間過長,在類的整個生命周期。
而對象只是存在於對象的整個生命周期。
//餓漢式 class Single//類一加載,對象就已經存在了。 { private static Single s = new Single(); private Single(){} public static Single getInstance() { return s; } }
//懶漢式 class Single2//類加載進來,沒有對象,只有調用了getInstance方法時,才會創建對象。 //延遲加載形式。 並發過程中存在安全隱患。 { private static Single2 s = null; private Single2(){} public static Single2 getInstance() { if(s==null) s = new Single2(); return s; } }
