文章目录
1 为什么要用单例模式
单例模式是一种对象创建模式,用于生产一个对象的实例,它可以确保系统中一个类只产生一个实例,这样做有两个好处:
- 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。
- 由于new操作的次数减少,所以系统内存的使用评率也会降低,这将减少GC压力,缩短GC停顿时间。
由于以上两点可知单例模式的使用对于系统的关键组件和频繁使用的对象来说是可以有效的改善系统的性能的。
单例的核心是通过一个方法返回唯一的一个对象实例,首先单例类必须有一个private访问级别的构造函数,因为,只有这样,才能保证单例不会在系统中的其他代码内被实例化,其次,instance成员变量和getInstance方法必须是static的。
1.1 单例vs静态类vs@service
参考https://blog.csdn.net/jeason_chan_zju/article/details/99119309
2 单例的几种写法
2.1 饿汉法
public class Hungry_man_pattern {
private Hungry_man_pattern(){
System.out.println("调用"+this.getClass()+"饿汉模式构造函数!");
}
private static Hungry_man_pattern singleton=new Hungry_man_pattern();
public static Hungry_man_pattern getSingleton()