关闭

Java设计模式_单例设计模式

标签: java设计模式java设计模式
104人阅读 评论(0) 收藏 举报
分类:
/**
 * 单例设计模式:饿汉式,不适用于多线程,效率低
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态 final
    private static final SingleTest instance = new SingleTest();
    private static SingleTest getInstance(){
        return instance;

}

}

/**
 * 单例设计模式:饱汉式,非线程安全
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}
/**
 * 单例设计模式:饱汉式,线程安全,效率不高
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰)
    private static  SingleTest instance ;
    private static synchronized SingleTest getInstance(){
        if(instance==null)
            instance = new SingleTest();
        return instance;
    }
}

/**
 * 单例设计模式:饱汉式,最优解
 */
public class SingleTest {
    //定义一个私有的构造方法
    private SingleTest()
    {}
    //将自身的实例对象设置成静态(不初始化,没有final修饰,使用volatile保证了线程访问时instance变量的可见性,
    // 避免了instance初始化时其他属性还没赋值完时被另外的线程调用)
    private static  volatile  SingleTest instance ;
    private static  SingleTest getInstance(){
        // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
        if(instance==null)
        {
            //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
            synchronized (SingleTest.class)
            {
                //未初始化,则初始instance变量
                if(instance==null)
                    instance = new SingleTest();
            }
        }
        return instance;
    }
}


0
0

猜你在找
深度学习基础与TensorFlow实践
【在线峰会】前端开发重点难点技术剖析与创新实践
【在线峰会】一天掌握物联网全栈开发之道
【在线峰会】如何高质高效的进行Android技术开发
机器学习40天精英计划
Python数据挖掘与分析速成班
微信小程序开发实战
JFinal极速开发企业实战
备战2017软考 系统集成项目管理工程师 学习套餐
Python大型网络爬虫项目开发实战(全套)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6977次
    • 积分:388
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:8篇
    • 译文:3篇
    • 评论:2条
    最新评论