黑马程序员技术交流社区

标题: 写了一个java的单例模式,大家看看有问题吗? [打印本页]

作者: monian2014    时间: 2014-11-21 17:53
标题: 写了一个java的单例模式,大家看看有问题吗?
    class Singleton {  private static Singleton instance=null;
  private Singleton(){}
  static Singleton getInstance() {
      if(instance==null)
      instance=new Singleton();
      return instance;
  }
}

作者: FlyMeToTheMoon    时间: 2014-11-21 18:26
以我的水平来看 ,恩。。。。没看出问题
作者: cbb    时间: 2014-11-21 18:46
你写的是懒汉式,效率没有饿汉式高!但是一般都考单例的延迟加载 也就是你写的这个,再加个snychronized的话,就OK了
作者: DamonZh    时间: 2014-11-21 18:49
加上同步和双重判断就更好了
作者: HelloWorld!    时间: 2014-11-21 18:55
懒汉式,实例延迟加载,多线程操作会有安全问题,需要同步,可以用同步函数,但效率较低,建议使用双重判断和同步代码块,效率较高:
//懒汉式单例设计模式
public class Single {

        public static void main(String[] args) {
               
        }
        static private Single single = null;
        private Single(){
               
        }
        public static Single getInstance(){
                if(single==null)
                        synchronized(Single.class){
                                if(single == null)
                                        single = new Single();
                        }
                return single;
        }
}
为了方便还是使用饿汉式较好。
作者: monian2014    时间: 2014-11-21 19:07
谢谢各位额,学习了:)
作者: Eagle    时间: 2014-11-21 19:09
我只说一个问题。。阅读性有点差啊。呵呵。楼主
作者: zhouyunfang    时间: 2014-11-21 23:51
public class Single {
作者: zhouyunfang    时间: 2014-11-21 23:52
public class Single {
        private static Single single = new Single();
        public static Single getSingle(){
                return single;
        }
       
}
这样更简单哟
作者: 迷失的小Z    时间: 2014-11-21 23:59
懒汉式啊……话说咋没锁呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2