懒汉单例饿汉单例

设计模式:单例

                     设计模式:23个设计模式

                                                          创建型

                                                          行为型

                                                          结构型

架构模式:

                战略      


单例/单态:如何能保证一个类只出一个对象?     

                                                                  懒汉式:

                                                                              缺点:访问速度慢

                                                                              优点:使用才加载对象          

                                                                              synchronized 同步可以解决懒汉式问题

                                                                 饿汉式:

                                                                             优点:访问速度快

                                                                             缺点:提前加载

 下面说一下懒汉式和饿汉式的区别及优点:

                                                              饿汉式不管有没有调用对象创建方法,都会预先在系统中创建一个静态对象

                                                              懒汉式不会预先创建对象,只有在第一次调用时才创建对象

                                                              饿汉式优点: 在多线程模式下是安全的

                                                              缺点: 没有调用方法前就被加载,会占用内存

                                                              懒汉式优点:只有调用方法才创建对象,不会占用内存

                                                              缺点:在多线程模式下不安全



public class Hello {//饿汉式单例

    //构造器私有化 不可以在外界创建此类对象
    private Hello() {
        System.out.println("创建对象");
    }

    //静态成员只有一份 加载本类对象 也只有一个
    private static Hello hello = new Hello();//静态只可能有一份

    //此方法是返回本类唯一对象
    public static Hello getHello() {
        return hello;//只要调用此方法就可以创建对象
    }

}


public class SayHello {

    private SayHello(){
        System.out.println("SayHello创建了对象");
    }

    private static SayHello sayHello;//声明对象

    public static synchronized SayHello getSayHello(){
        if(sayHello==null){//判断调用为空吗?
            sayHello=new SayHello();//如果不为空再创建对象
        }
        return sayHello;//如果不为空直接返回对象
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值