单例模式

单例模式简介:

  单例模式:单例模式是一种对象创建模式,用于生产一个对象的实例,它可以确保系统中一个类只产生一个实例,这样做有两个好处:

  1、对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。

  2、由于new操作的次数减少,所以系统内存的使用评率也会降低,这将减少GC压力,缩短GC停顿时间。

  单例的核心是通过一个方法返回唯一的一个对象实例,首先单例类必须有一个private访问级别的构造函数,因为,只有这样,才能保证单例不会在系统中的其他代码内被实例化,其次,instance成员变量和getInstance方法必须是static的。

  单例饿汉模式是安全的,懒汉模式是不安全的,使用延迟加载来保证对象在没有使用之前是不会初始化的,如果使懒汉模式安全加上Synchronized就可以了。

  同步的代价必然会一定程度的使程序并发度降低,解决方法:双重检验锁(Double-Checked Lock),但是是一个Anti-Pattern,不推荐使用。

  参考:https://blog.csdn.net/qq_37552993/article/details/88566510

原文地址:https://www.cnblogs.com/cxli99/p/13785650.html