A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    class Singleton {  private static Singleton instance=null;
  private Singleton(){}
  static Singleton getInstance() {
      if(instance==null)
      instance=new Singleton();
      return instance;
  }
}

9 个回复

倒序浏览
以我的水平来看 ,恩。。。。没看出问题
回复 使用道具 举报
cbb 中级黑马 2014-11-21 18:46:28
藤椅
你写的是懒汉式,效率没有饿汉式高!但是一般都考单例的延迟加载 也就是你写的这个,再加个snychronized的话,就OK了
回复 使用道具 举报
加上同步和双重判断就更好了
回复 使用道具 举报
懒汉式,实例延迟加载,多线程操作会有安全问题,需要同步,可以用同步函数,但效率较低,建议使用双重判断和同步代码块,效率较高:
//懒汉式单例设计模式
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;
        }
}
为了方便还是使用饿汉式较好。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
谢谢各位额,学习了:)
回复 使用道具 举报
Eagle 高级黑马 2014-11-21 19:09:18
7#
我只说一个问题。。阅读性有点差啊。呵呵。楼主
回复 使用道具 举报
public class Single {
回复 使用道具 举报
public class Single {
        private static Single single = new Single();
        public static Single getSingle(){
                return single;
        }
       
}
这样更简单哟
回复 使用道具 举报
懒汉式啊……话说咋没锁呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马