专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java中常见的单例模式(java中单例模式具体作用)

temp10 2024-09-22 09:59:48 java教程 8 ℃ 0 评论
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;
    }

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表