java小白设计模式,单例模式

一、设计模式

        设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

        java一共有23种设计模式:

二、单例模式

        概念:单例模式可以说是大多数开发人员在实际中使用最多的,常见的Spring默认创建的bean就是单例模式的。单例模式有很多好处,比如可节约系统内存空间,控制资源的使用。

特点:

        1、单例类只能有一个实例。  

        2、单例类必须自己创建自己的唯一实例。  

        3、单例类必须给所有其他对象提供这一实例。

三、单例模式的实现

1.饿汉式实现方法:

public class Singleton1 {
    public static void main(String[] args) {
        MySingle single1 = MySingle.getSingle();
        MySingle single2 = MySingle.getSingle();
        System.out.println(single1 == single2);//true,==比较的是地址值,说明是同一个对象
    }
}
class MySingle{
    private MySingle(){ };
    static private MySingle single = new MySingle();
    static public MySingle getSingle(){
        return single;
    }
}

2.懒汉式实现方法:

public class Singleton2 {
    public static void main(String[] args) {
        MySingle2 s1 = MySingle2.getMySingle2();
        MySingle2 s2 = MySingle2.getMySingle2();
        System.out.println( s1 == s2 );//true,比较的是地址值,说明是同一个对象
    }
}
class MySingle2{
    private MySingle2(){}
    static private MySingle2 single2;
    static Object o = new Object();
    synchronized static public MySingle2 getMySingle2(){
        synchronized (o) {
            if (single2 == null) {
                single2 = new MySingle2();
            }
            return single2;
        }
    }
}

3.注意:在懒汉式实现的时候,遇到了同一个公共资源被多条语句使用的场景,如果引入多线程的话,就会引发线程安全隐患,所以添加了同步锁来解决这一麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值