单例模式理解

单例模式:

         三要素:

               1、私有的构造方法;

               2、私有的静态的实例对象;

               3、公共的静态的提供访问方法;

根据单例模式的创建时机可以将其分为两种类型:

          1、懒汉模式:在系统初始化时不会做初始化,会在什么时候使用到时做初始化操作。

          public class Ehanmoshi{

                   private static Lanhanmoshi ehanmoshi=null;

                   private Lanhanmoshi (){
                           system.out.println("初始化懒汉模式");

                   }

                  public static Lanhanmoshi getLanhanmoshi(){ 

                          if(lanhanmoshi==null){

                                     lanhanmoshi=new Lanhanmoshi ();

                          }

                          return lanhanmoshi;

                  }

           }

          2、饿汉模式:在系统初始化时就已经初始化完成。

          public class Ehanmoshi{

                  private Ehanmoshi(){

                          system.out.println("饿汉模式初始化");

                  }

                  private static Ehanmoshi ehanmoshi=new Ehanmoshi();

                  public static Ehanmoshi getEhanmoshi(){

                             return ehanmoshi;

                  }

           }

总结:懒汉模式在多线程中可能会造成返回单例模式的为多个,破坏单例模式。可以在返回实例的公共方法上加入

synchronized 修饰符修饰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值