你们好,最近小元发现有诸多的小伙伴们对于singleton bean creation not,singleton这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。singleton顾名思义,就是只有一个元素的集合的意思。在java中就衍生为一个类之中只有一个实例。这么理解上去就可以很轻松的了解单例模式的定义,所谓单利,就是只有一个实例,仅此而已。 那么为什么我们需要这么一个模式呢?这是因为在很多情况下,环境的条件要求我们必须有且只有一个实例。比如说一个打印机,同一时间只能打印一个文件,那么就需要这么一个只有一个实例的类,来存放需要打印的内容。 单例模式的要点有三个,第一个也是最重要的一个,就是一个类之中只能有一个实例。第二就是他必须自己创建这个例子,而第三,也是与外界联通很重要的一个步骤,就是可以向其他的类提供本类的实例这个功能。 这里我们再来讲一下单例模式的几种实现方式,第一个就是最普通的懒汉模式。 这个必须要加上synchronized才可以在多线程的情况下工作,但是这样加同步锁又会很大程度上影响到效率,也就是说getinstance方法在系统中不是关键步骤的话才可以考虑这么使用。 第二个就是DCL双重校验锁,DLC的全称是double-checked locking 双锁的改动使得这个在并发情况下的效率要远远的大于上面的懒汉模式。 虽然实现上复杂但是效率更优。

以上就是singleton这篇文章的一些介绍,希望对大家有所帮助。