美文网首页
java单例模式最优写法

java单例模式最优写法

作者: cjxll | 来源:发表于2019-06-23 23:14 被阅读0次
饿汉式
public class Singleton1 {

    public static final Singleton1 INSTANCE = new Singleton1();

    private Singleton1(){

    }
}

使用枚举,更简洁

public enum Singleton2 {
    INSTANCE
}
懒汉式
  1. 考虑线程安全问题,double check(双重校验)
public class Singleton3 {

    public static Singleton3 instance;

    private Singleton3(){}

    public static Singleton3 getInstance() {
        if (instance == null){
            synchronized (Singleton3.class){
                if(instance == null){
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    instance = new Singleton3();
                }
            }
        }
        return instance;
    }
}
  1. 使用静态内部类,写法简洁
public class Singleton4 {
    private Singleton4(){}

    private static class Inner{
        public static final Singleton4 INSTANCE = new Singleton4();
    }

    public static Singleton4 getInstance(){
        return Inner.INSTANCE;
    }
}

相关文章

  • java单例模式最优写法

    饿汉式 使用枚举,更简洁 懒汉式 考虑线程安全问题,double check(双重校验) 使用静态内部类,写法简洁

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

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

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

  • Java四种单例设计模式

    Java中的四种单例模式 单例模式是最容易理解的设计模式之一,介绍Java中单例模式的四种写法。 1.基本单例模式...

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

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

  • java 24 设计模式

    单例模式java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、...

  • Java设计模式—单例模式

    概念 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,比较常见的有:懒汉式单例、饿汉式单例。单例模...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Kotlin-单例类

    1、单例模式:设计模式之一,可以避免创建重复的对象。 2、单例模式工作机制Java写法: public class...

  • Java设计模式_单例模式

    概念 java中单例模式是一种常见的设计模式,单例模式的写法有好几种.这里主要介绍:懒汉式 饿汉式. 单例模式有...

网友评论

      本文标题:java单例模式最优写法

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