單例模式的分爲兩種類型:餓漢模式和懶漢模式。
單例模式主要應用在:配置文件,工具類,線程池,緩存等。
餓漢模式:類加載時就創建對象並實例化,線程安全的。
/**
* 單例模式:餓漢模式 線程安全的
* <p>
* 作用:保證整個程序中某個實例有且只有一個
*
*/
public class Singleton {
//1.將構造方法私有化
private Singleton() {
}
//2.創建類的唯一實例
private static Singleton instance = new Singleton();
//3.通過方法讓調用者獲取實例
public static Singleton getInstance() {
return instance;
}
}
懶漢模式:在運行時對對象實例化,線程不安全。
/*
懶漢模式
*/
public class Singleton2 {
//1.將構造方法私有化
private Singleton2() {
}
//2.只聲明對象
private static Singleton2 instance ;
//3.首次調用時,就實例化對象
public static Singleton2 getInstance() {
if (null == instance) {
instance = new Singleton2();
}
return instance;
}
}