zoukankan      html  css  js  c++  java
  • 单例

    饿汉式

    public class Single{

    //立即加载==饿汉式

    private static Single single = new Single();

    //私有化构造方法

    private Single(){

    }

    public static Single  getSingle(){

         return single;

         }

    }

    懒汉式

    public class Single{

    private static Single single;//只声明,不创建

    private Single(){//私有化构造方法

    }

    public static Single getSingle(){

       //延迟加载

       if(single != null){  

          }else{

            single  = new Single();

          }

    return single;

      }

    }

    上述懒汉式,存在线程安全的问题

    解决方法 1 在getSingle()方法上增加synchronized关键字,但是这样的效率太低了

    双重锁DCL

    public class Single{

    private volatile static Single single;

    private Single(){}

    public static Single  getSingle(){

          if(single != null){

           }else{

             synchronized(Single.class){

                    if(single == null){

                        single = new Single();

                        }

                }

             }

          return single;

        }

        

    }

  • 相关阅读:
    Java 初始化
    tomcat 输入学习
    使用exundelete在Linux下恢复删除的文件
    java设计模式----解释器模式
    java设计模式----中介模式
    java设计模式----访问者模式
    java设计模式----状态模式
    关于前后端分离的一些事
    sublime text3
    java中的socket编程
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9695981.html
Copyright © 2011-2022 走看看