单例模式:其定义的对象的类只能允许一个实例存在
单利模式的几种写法
- 饿汉式
优点:写法简单,在类装载的时候就完成实例化。避免线程同步问题public class SingletonHunger { private final static SingletonHunger singletonHunger=new SingletonHunger(); private SingletonHunger() { } public static SingletonHunger getInstance(){ return singletonHunger; } }
缺点:在类装载的实惠就实例化,没有达到懒加载的效果,在程序用运行的时候没有用到过,则会照成内存的浪费
- 懒汉式
优点 线程安全,延迟加载,效率较高public class SingletonLazy { private static SingletonLazy singletonLazy; private SingletonLazy() { } public static SingletonLazy getInstance() { if (singletonLazy == null) { synchronized (SingletonLazy.class) { if (singletonLazy == null) { singletonLazy = new SingletonLazy(); } } } return singletonLazy; } }
参考文献:https://www.cnblogs.com/zhaoyan001/p/6365064.html