龙空技术网

Java中常见的单例模式

程序员拉毛哥 57

前言:

今天你们对“java中单例模式具体作用”都比较注重,大家都需要剖析一些“java中单例模式具体作用”的相关内容。那么小编同时在网络上网罗了一些对于“java中单例模式具体作用””的相关内容,希望姐妹们能喜欢,我们一起来学习一下吧!

public class SingletonDemo {    /**     * 常见的单例模式:饿汉式,懒汉式,双重检索琐式,其中饿汉式和懒汉式比较常见     * 单例常见的应用场景:     * 1.项目中读取文件配置;     * 2.数据库连接池;     * 3.Spring中的每个bean都是单例,便于Spring容器进行管理;     * 4.Servlet中Application     * 5.网络计数器,回收站,任务管理等等     */}/** * 饿汉式:线程安全,调用效率高,但是不能延时加载 * 由于该模式在加载类的时候d对象就已经创建了,所以加载类的比较慢,但是获取对象实例比较快,且线程是安全的 */class  SingletonDemo1{    //线程安全的    //类初始化,立即加载    private static SingletonDemo1 instance = new SingletonDemo1();    //构造方法私有化    private SingletonDemo1(){    }    //方法没有加同步块,所以效率高    public static SingletonDemo1 getInstance(){        return instance;    }}/** * 懒汉式:线程不安全。 */class SingletonDemo2{    //线程不安全    private static SingletonDemo2 instance = null;    //构造方法私有化    private SingletonDemo2(){    }    public static SingletonDemo2 getInstance(){        if (instance == null){            instance = new SingletonDemo2();        }        return instance;    }}/** * 懒汉式:双重同步锁 */class SingletonDemo3{    private static volatile SingletonDemo3 instance = null;    private SingletonDemo3(){}    public static SingletonDemo3 getInstance(){        if (instance == null){            synchronized (SingletonDemo3.class){                if (instance == null){                    instance = new SingletonDemo3();                }            }        }        return instance;    }}

标签: #java中单例模式具体作用 #java中的单例模式的使用场景