闲来无事看之前的博客,发现单例模式只会写2中。所以再重新开一篇博客,将目前自己所能理解的几种单例模式全部总结下。
___________________________________________________________________________________________________________
1、懒汉式(最基本的) 单线程版
写单例模式(饿汉式)的步骤:
1):必须在该类中,自己先创建出一个对象。
2):私有化自身的构造器,防止外界通过构造器创建新的对象。
3):想外暴露一个公共的静态方法用于获取自身的对象
缺点:单线程是没问题的 但是多线程就会产生线程问题 下面会介绍多线程版本
// 懒汉式类初始化的,不会创建该对象,真正需要的时候才会加载(创建),天生线程不安全,需要解决线程安全问题,所有效率比较低
public class SingletonLazy {
private SingletonLazy() {
System.out.println(Thread.currentThread().getName());
}
private static SingletonLazy singletonLazy;
public static SingletonLazy getInstance() {
if (singletonLazy == null) {
singletonLazy = new SingletonLazy();
}
return singletonLazy;
}
public static void main(Strin