單例模式
* 作用:保證整個應用程式中某個例項有且只有乙個
* 型別:餓漢模式、懶漢模式
demo1:
package singleton;
public class singleton
//建立類的例項,使用 static
public static singleton instance= new singleton();
}package singleton;
public class testsingleton else
}public static void main(string args)
}執行結果:同乙個例項
在這個demo1的基礎上修改**,使用乙個public方法物件提供獲取該例項的方法。
package singleton;
public class singleton
/*建立類的例項,使用 static
public static singleton instance= new singleton();*/
//建立類的例項,使用 static
private static singleton instance= new singleton();
//使用static即可在外部使用類名進行訪問
public static singleton getinstance()
}public static void testsingleton2() else
}public static void main(string args)
}執行結果:同乙個例項
上述這個就是餓漢模式,在類載入時就建立了該類的唯一例項。
下面講述懶漢模式
demo3
// 懶漢模式
private static singleton instance;
public static singleton getinstance()
return instance;
}懶漢模式和餓漢模式的對比
餓漢模式在類的載入時就建立了乙個例項,所以在載入的時候慢,獲取的時候快
懶漢模式在類的載入時快,第一獲取的時候需要建立物件,所以慢
java設計模式 Singleton單例模式
餓漢模式 package singleton created by anshay on 2017年10月14日 email anshaym 163.com 型別 餓漢模式 public class singleton 2.建立類的唯一例項,使用private static修飾 private不允許外...
JAVA設計模式 SINGLETON單例模式
概念 單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式只應在有真正的 單一例項 的需求時才可使用 例子 public class singletona private static singletona s public static singletona geti...
Java設計模式 單例模式2
之前說到的懶漢式可以延遲載入,但是會有執行緒安全的問題,解決的辦法是新增synchronized關鍵字,但是這樣就會有效能的問題,每次都要同步而且都要判斷,會降低訪問速度。下面的餓單例模式雙重鎖檢查連線資料庫可以解決這個問題。雙重檢查加鎖 就是不是上來就對 進行同步,而是首先判斷是不是存在,如果存在...