单例模式

来源:互联网 发布:软件测试 视频 编辑:程序博客网 时间:2024/04/29 07:15

单例模式 是指一个类中只创建一个对象
1.懒汉模式 指的是用的时候创建 用时间换空间

public class  Singleton{    private Singleton(){    };    private  static Singleton instance;    public static synchronized Singleton getInstance(){        if(instance == null){            instance = new Singleton();        }        return instance;    }}

2.恶汉模式 指的是在类初始化的时候就创建 用空间换时间

public class  Singleton{    private Singleton(){    };    private static Singleton instance = new Singleton();    public static Singleton getInstance(){        return instance;    }}

对于恶汉模式是线程安全的,而懒汉则需要考虑到线程的安全问题,两种方式1.如上代码在方法块上加上synchronized,

       ```       private  volatile  static Singleton instance;            public class  Singleton{                private Singleton(){                };                private  static Singleton instance;                public static synchronized Singleton getInstance(){                    if(instance == null){                        synchronized(Singleton.class){                            if(instance == null){                                instance = new Singleton();                             }                        }                      }                    return instance;                }            }            ```
0 0