论坛首页 入门技术论坛

java关于单例模式的一些疑问?

浏览 15026 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-04-30  
public static Singleton getInstance{
    if(singleton == null){
        synchronized(this){
           if(singlenton == null){
              singlenton = new Singlenton();
            }
         }
    }
    return singleton;
}
-----------------------------
这个性能比在外面加synchronized好多了
太精辟了
0 请登录后投票
   发表时间:2009-05-06   最后修改:2009-05-06
binlaniua 写道
public static Singleton getInstance{
    if(singleton == null){
        synchronized(this){
           if(singlenton == null){
              singlenton = new Singlenton();
            }
         }
    }
    return singleton;
}
-----------------------------
这个性能比在外面加synchronized好多了
太精辟了

这个程序编译得过去吗? 应该改成synchronized(Singlenton.class)
0 请登录后投票
   发表时间:2009-05-06  
本身就有问题~
0 请登录后投票
   发表时间:2009-05-06  
我就说说我的理解吧:
问题一:声明私有的构造函数,是为了防止被其他类调用,否则的话,单例就不成立了。
问题二:开发单例的时候,主要是注意线程安全,即要保证在多线程运行的情况下,也不会发生线程同时访问一个变量的情况,所以,一般可以考虑为方法加"sychronized".
问题三:单例模式我知道的有懒汉式,和饱汉式。
问题四:这个还没有完全理解。
0 请登录后投票
   发表时间:2009-05-09  
public class UserService {
private static final UserService userService = new UserService ();
private UserService{

}
public static UserService getInstance(){
return userService;
}
}
这个是懒汉式吧。。
采用的是预先加载的方式,UserService.class  当被载入的时候 就事先声明了对象;
0 请登录后投票
   发表时间:2009-05-09  
chenhua_1984 写道
dopic 写道
public static XXX getInstance (){
   if(XXX==null){
       synchronized(this){
         XXX = new XXX();
         }
    }
return XXX;
}
Head First设计模式上的

谢谢!synchronized(this),这里的this具体怎么解释?



this  代表的是 XXX.class
0 请登录后投票
   发表时间:2009-05-12  
wanglei50065842 写道
chenhua_1984 写道
dopic 写道
public static XXX getInstance (){
   if(XXX==null){
       synchronized(this){
         XXX = new XXX();
         }
    }
return XXX;
}
Head First设计模式上的

谢谢!synchronized(this),这里的this具体怎么解释?



this  代表的是 XXX.class


晕 this是实例  XXX.class 是static类型 怎么可能相同
0 请登录后投票
   发表时间:2009-05-15  
private static Object ob = new Object();
sorry 这里应该是个对象
synchronized(ob){
...
}
0 请登录后投票
   发表时间:2009-05-15  
大家快自吻吧!都是我的错。没想当起了这么大反应,headfrist 在单例那一章写得很细,写了好几种单例,对每种单例都说明了各个的优缺点!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics