美文网首页
总结复写一下java 单例的各种写法6种

总结复写一下java 单例的各种写法6种

作者: 陈沉成染 | 来源:发表于2019-07-31 23:33 被阅读0次

普通写法(饿汉式)

public class Single {
    private static final Single INSTANCE = new Single();
    public static Single getINSTANCE() {
        return INSTANCE;
    }
}
// 线程安全 因为类加载的时候就直接加载了 所以是线程安全的

懒汉式

public class Single {
    private static  Single INSTANCE = null;
    public static Single getINSTANCE() {
        if (INSTANCE == null){
            INSTANCE = new Single();    
        }
        return INSTANCE;
    }
    //最基础的写法 非线程安全
}

升级一点的写法

public class Single {
    private static  Single INSTANCE = null;
    public static synchronized Single getINSTANCE() {
        if (INSTANCE == null){
            INSTANCE = new Single();
        }
        return INSTANCE;
    }
    //线程安全 ,但是效率降低
}

再升级一点的写法

public class Single {
    private static volatile Single INSTANCE = null;
    public static Single getINSTANCE() {
        if (INSTANCE == null){
            synchronized (Single.class){
                if (INSTANCE == null){
                    INSTANCE = new Single();
                }
            }
        }
        return INSTANCE;
    }
    //线程安全 ,但是效率提高了  (volatile 关键字是 防止重排序,但需要检验两次)
}

内部类写法

public class Single {
    
    public static Single getINSTANCE() {
       return Holder.INSTANCE;
    }
    public static class Holder{ 
        private static final Single INSTANCE = new Single();
    }
    // 静态内部类写法, 类加载的时候才加载,而内部类是与外部类同级的,只有用到内部类的时候才加载内部类
    
}

枚举类写法

public enum  Single {
   INSTANCE
}
// 天生单例 effectiviejava 推荐,

相关文章

  • 总结复写一下java 单例的各种写法6种

    普通写法(饿汉式) 懒汉式 升级一点的写法 再升级一点的写法 内部类写法 枚举类写法

  • Kotlin中的单例模式与Java对比

    目前java中的单例模式有多种写法,kotlin中的写法更多一点,本篇会总结全部的到单例模式写法。 一、懒人写法(...

  • 单例模式的六种创建方式

    在使用java编码的过程中经常会去写单例模式,今天总结一下6种常见单例写法. 饿汉模式 评价:这种模式直接在类初始...

  • 单例模式的实现方式

    最近看到组里有人实现单例模式,采用静态内部类的方式,不是很懂这种写法的优点,查了一下各种写法的优缺点,总结一下。内...

  • Java中单例模式你用的哪一种?

    一起讨论java中的单例模式。单例模式是java设计模式中算是最简单的设计模式了。 * java实现单例模式的写法...

  • Java基础系列-单例的7种写法

    原创文章,转载请标注出处:《Java基础系列-单例的7种写法》 一、概述 Java中单例有7种写法,这个是在面试中...

  • Kotlin——单例模式

    最近在写项目的同时也用到了单例模式,kotlin的单例还不是很会写,现在就总结下java写法对应的kotlin是如...

  • 单例模式

    单例设计模式是几种设计模式中比较容易理解的,手写单例模式也是面试频繁问到的。下面总结一下单例模式的几种写法: //...

  • iOS开发技巧(Swift版):单例创建

    在些项目的时候, 我们往往会用到单例模式,.相比OC中单例的写法, 结合Swift的语法特点,总结一下3种单例模式...

  • java单例的另一种写法

    java单例的另一种写法 阅读android源码时发现ActivityManager有一个单例的写法如下: Sin...

网友评论

      本文标题:总结复写一下java 单例的各种写法6种

      本文链接:https://www.haomeiwen.com/subject/amzxdctx.html