设计模式,单例模式,第一天学习

  


<强>

,

<强> <强>:

<强> 1。 <强>

<强> 2。 <强>

<强> 3。 <强>

<强> 4。 <强>

<强> 5。 <强>

<强>

<强>,

<强>,

<强>

1。

2。

3。

public  class  SingletonDemo1  {//类初始化时,立即加载这个对象(没有延时加载的优势)。加载类时,天然的是线程安全的!   private  static  SingletonDemo1  instance =, new  SingletonDemo1 (),,   private  SingletonDemo1 () {   }//方法没有同步,调用效率高!   public  static  SingletonDemo1 , getInstance () {   ,,,,,,,,,,return 实例;   }   }

<强>,

<强>

getInstance ()

<强>

1。

2。

3. getinstance()同步

public  class  SingletonDemo2  {//类初始化时,不初始化这个对象(延时加载,真正用的时候再创建)。   private  static  SingletonDemo2 实例,   private  SingletonDemo2(){,//私有化构造器   }//方法同步,调用效率低!   public  static , synchronized  SingletonDemo2 , getInstance () {   ,,,,,,,,,,如果(实例==null) {   ,,,,,,,,,,,,,,,,,,,instance =, new  SingletonDemo2 ();   ,,,,,,,,,,}   ,,,,,,,,,,return 实例;   }   }

<强>,

<强>

<强>

<强> jvm

<强>

public  class  SingletonDemo3  {,   ,   private 才能static  SingletonDemo3  instance =,零,,   ,   public 才能static  SingletonDemo3  getInstance (), {,   ,,,if  (instance ==, null), {,   ,,,,,SingletonDemo3  sc,,   ,,,,,synchronized  (SingletonDemo3.class), {,   ,,,,,,,sc =,实例,,   ,,,,,,,if  (sc ==, null), {,   ,,,,,,,,,synchronized  (SingletonDemo3.class), {,   ,,,,,,,,,,,如果(sc ==, null), {,   ,,,,,,,,,,,,,sc =, new  SingletonDemo3 (),,   ,,,,,,,,,,,},   ,,,,,,,,,},   ,,,,,,,,,instance =, sc,,   ,,,,,,,},   ,,,,,},   ,,,},   ,,,return 实例,,   ,,},   ,   private 才能;SingletonDemo3 (), {,   ,   ,,},   }


<强>,

<强>

<强> <强>:

<强>

1。

2。

3。getInstance

,

public  class  Singleto   nDemo4  {   private  static  class  SingletonClassInstance  {   ,,,,,,,,,,private  static  final  SingletonDemo4  instance =, new  SingletonDemo4 ();   }   private  SingletonDemo4 () {   }//方法没有同步,调用效率高!   public  static  SingletonDemo4 , getInstance () {   ,,,,,,,,,,return  SingletonClassInstance.instance;   }   }

,

<强>

<强> JVM

<强>

<强>

<李>

<李>

<李>

public  enum  SingletonDemo5  {   ,,   ,,//这个枚举元素,本身就是单例对象!   ,,实例;   ,,   ,,//添加自己需要的操作!   ,,public  void  singletonOperation () {   ,,,,,,,,,,,System.out.println(“枚举实现单例模式“);   ,,}   null

设计模式,单例模式,第一天学习