1. 程式人生 > 實用技巧 >Java-14 單例模式

Java-14 單例模式

單例設計模式

  • 讓類只能產生一個例項(物件)。

  • 餓漢式:

package com.xjk;


// 餓漢式:它存在問題,不具備懶載入,比較佔用記憶體開銷。
public class Singleton {
	// 設定靜態變數,直接通過類呼叫
	private static Singleton s = new Singleton();
	// private 只能在本類呼叫
	private Singleton() {
	}
	public static Singleton getInstance() {
		return s;
	}
}

  • 懶漢式:
package com.xjk;
// 懶漢式:存在問題,存線上程安全問題
public class Singleton2 {
	private static Singleton2 s;
	// 構造方法私有化,為了不讓別人隨便new
	private Singleton2() {
	}
	// 通過public static 可以通過類名進行呼叫
	public static Singleton2 getInstance() {
		if (s == null) {
			s = new Singleton2();
		} 
		return s;
	}
}

  • demo
package com.xjk;

public class SingletonDemo {
	public static void main(String[] args) {
		Singleton s1 = Singleton.getInstance();
		System.out.println(s1);
		Singleton s2 = Singleton.getInstance();
		System.out.println(s2);
	}
}
// com.xjk.Singleton@4c203ea1
// com.xjk.Singleton@4c203ea1