Java-14 單例模式
阿新 • • 發佈:2020-10-04
單例設計模式
-
讓類只能產生一個例項(物件)。
-
餓漢式:
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