亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java單例模式的實現方式是什么

小億
83
2024-01-23 13:38:20
欄目: 編程語言

Java中實現單例模式的方式有以下幾種:

  1. 餓漢式(Eager Initialization):在類加載時就創建單例對象,并通過靜態方法返回。此方式在多線程環境下是安全的。
public class Singleton {
    private static final Singleton instance = new Singleton();
    
    private Singleton() {}
    
    public static Singleton getInstance() {
        return instance;
    }
}
  1. 懶漢式(Lazy Initialization):在調用獲取單例對象的方法時才創建單例對象。此方式在多線程環境下需要進行線程同步處理。
public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
  1. 雙重校驗鎖(Double-Checked Locking):在懶漢式的基礎上進行改進,在創建實例時增加了一次判空校驗,減少了不必要的同步開銷。
public class Singleton {
    private volatile static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  1. 靜態內部類(Static Inner Class):利用靜態內部類的特性,實現懶加載并保證線程安全。
public class Singleton {
    private Singleton() {}

    private static class SingletonHolder {
        private static final Singleton instance = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.instance;
    }
}
  1. 枚舉(Enum):利用枚舉的特性,實現單例模式。枚舉是線程安全且只會被實例化一次。
public enum Singleton {
    INSTANCE;

    // 需要添加的單例對象的其他方法
}

0
广宁县| 葵青区| 桑日县| 永平县| 永新县| 辽阳县| 荆门市| 浦北县| 岳阳市| 黄平县| 神木县| 临邑县| 孙吴县| 恭城| 尤溪县| 北京市| 邳州市| 弥勒县| 湄潭县| 临颍县| 兴化市| 晋城| 巴青县| 芷江| 商洛市| 津市市| 修水县| 龙州县| 大田县| 烟台市| 左权县| SHOW| 德钦县| 自贡市| 隆回县| 凭祥市| 襄垣县| 昂仁县| 元江| 淄博市| 潜山县|