有你在真好 的个人博客
设计模式-单例模式
阅读:2321 添加日期:2021/3/27 23:24:13 原文链接:https://www.toutiao.com/item/6454121085330784782/

饿汉模式-初始化加载

public class HungryManSingleton {

private HungryManSingleton() {

}

// 使用private static修饰

private static HungryManSingleton hungryManSingleton = new HungryManSingleton();

public static HungryManSingleton getHungryManSingleton() {

return hungryManSingleton;

}

}

饿汉模式-延时加载(建议用这种)

public class HungryManSingleton {

private HungryManSingleton() {

}

// 内部静态类,懒加载

public static HungryManSingleton getInstance() {

return InnerStaticClass.hungryManSingleton;

}

static class InnerStaticClass {

private static HungryManSingleton hungryManSingleton = new HungryManSingleton();

}

}

懒汉模式

public class LazyManSingleton {

private LazyManSingleton() {

}

// volatile防止指令重排

private static volatile LazyManSingleton lazyManSingleton;

public static LazyManSingleton getLazyManSingleton() {

// 双重判断double check

if (lazyManSingleton == null) {

synchronized (LazyManSingleton.class) {

if (lazyManSingleton == null) {

lazyManSingleton = new LazyManSingleton();

}

}

}

return lazyManSingleton;

}

}

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号