1. 程式人生 > >Java單例模式&static成員變量 區別

Java單例模式&static成員變量 區別

instance .net 技術分享 static成員 使用 過程 () http 一加

當需要共享的變量很多時,使用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; } }

Java單例模式&static成員變量 區別