首页 青云排行榜 知识中心 控制台

以下哪种方式实现的单例是线程安全的

枚举

静态内部类

双检锁模式

饿汉式

双重检测锁实现
public class SingletonDemo3 { 
  private static SingletonDemo3 instance = null; 
  public static SingletonDemo3 getInstance() { 
    if (instance == null) { 
      SingletonDemo3 sc; 
      synchronized (SingletonDemo3.class) { 
        sc = instance; 
        if (sc == null) { 
          synchronized (SingletonDemo3.class) { 
            if(sc == null) { 
              sc = new SingletonDemo3(); 
            } 
          } 
          instance = sc; 
        } 
      } 
    } 
    return instance; 
  } 
  private SingletonDemo3() {} 
}


静态内部类实现方式(也是一种懒加载方式)
public class SingletonDemo4 {
private static class SingletonClassInstance {
private static final SingletonDemo4 instance = new SingletonDemo4();
}
private SingletonDemo4(){
}
//方法没有同步,调用效率高!
public static SingletonDemo4  getInstance(){
return SingletonClassInstance.instance;
}
}

使用枚举实现单例模式
public enum SingletonDemo5 {
//这个枚举元素,本身就是单例对象!
INSTANCE;
//添加自己需要的操作!
public void singletonOperation(){
}
}


饿汉模式
public class Single2 {
    private static Single2 instance = new Single2();
    private Single2(){}
    public static Single2 getInstance(){
        return instance;
    }
}
关于我们
公司简介
联系我们
联系我们
售前咨询: leizhongnan@eval100.com
售后服务: 0755-26415932
商务合作: support@eval100.com
友情链接
金蝶软件
快递100
关注我们
Copyright © 2023-2023 深圳慧题科技有限公司 粤ICP备2023109746号-1 粤公网安备44030002001082