美文网首页
如何更好的实现一个单例

如何更好的实现一个单例

作者: jacksu在简书 | 来源:发表于2016-09-13 09:10 被阅读60次
public class Printer { 
  private Printer(){ }
  public static Printer newInstance(){
    return CreatePrinter.mPrinter;
  } 
  private static class CreatePrinter{ 
    private final static Printer mPrinter = new Printer();
  }
}

因为静态的单例对象没有作为类的成员变量直接实例化,因此在Printer类加载时并没有实例化mPrinter。第一次调用newInstance() 的时候加载内部类CreatePrinter ,该内部类定义了一个static 类型的变量mPrinter,此时会首先初始化这个变量,由JVM 来保证其线程安全性,确保该成员变量只被实例化一次。

可见,通过使用这个方法,不仅实现了延迟加载,又可以保证线程安全,不影响系统性能。

文/千里追风(简书作者)原文链接:http://www.jianshu.com/p/127903ae72b0著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

相关文章

  • Redis实现锁

    基于Redis单例的实现 为了后面更好的了解分布式锁的实现,我们先来看看如何基于Redis单例实现锁服务。我们可以...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • 单例

    单例,是Java中很重要的一个设计模式。 实现单例是要考虑并发(线程安全)问题的。 如何实现一个线程安全的单例?你...

  • 如何更好的实现一个单例

    因为静态的单例对象没有作为类的成员变量直接实例化,因此在Printer类加载时并没有实例化mPrinter。第一次...

  • Python经典面试题21道

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python最经典面试题21道,必看!

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • Python 经典面试题

    1、Python如何实现单例模式? Python有两种方式可以实现单例模式,下面两个例子使用了不同的方式实现单例模...

  • 单例

    什么是单例? 为什么要有单例? 如何实现一个单例 最容易想到的是下面的实现。但是有个问题,协程并发获取时,仍然会创...

  • 如何对枚举类型实现的单例模式进行mock

    最近在工作中使用了用枚举实现的单例,那么如何对该种单例模式实现mock呢? 单例类如下(Singleton.cla...

网友评论

      本文标题:如何更好的实现一个单例

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