您的位置:首页 > 职场人生

黑马程序员--懒汉式和饿汉式单例设计模式

2014-10-17 10:37 127 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

饿汉式:

        public class Singleton{

            private static Singleton singleton = new Singleton ();

            private Singleton (){}

            public Singleton getInstance(){return singletion;}

       } 

     懒汉式1:

       public class Singleton{

            private static Singleton singleton = null;

            public static synchronized  getInstance(){

                 if(singleton==null){

                     singleton = new Singleton();

                 }

                return singleton;

            }
       } 

   懒汉式2

public class LazySignleton {

    private static LazySignleton INSTANCE = null;

    //私有化构造子,阻止外部直接实例化对象
   private LazySignleton(){

       

    }

     // 获取类的单例实例

    public static LazySignleton getInstance(){

        if(INSTANCE == null){

            synchronized (LazySignleton.class) {

              if(INSTANCE == null){

                   INSTANCE = new LazySignleton();

              }

           }

       }

      return INSTANCE;

   }

}

     比较:

         饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变

          懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的

          推荐使用第一种 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息