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;

        }

        

    }

  • 相关阅读:
    Linux命令:sed命令
    Linux命令:grep命令 | egrep命令
    Linux命令:find命令
    bash脚本编程
    Linux命令:vi | vim命令
    Linux文件权限管理
    237. 删除链表中的节点
    160. 相交链表
    538. 把二叉搜索树转换为累加树
    543.Diameter of Binary Tree
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9695981.html
Copyright © 2011-2022 走看看