论坛首页 Java企业应用论坛

学习单例模式

浏览 16526 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (9)
作者 正文
   发表时间:2008-12-04   最后修改:2008-12-04
wangchao_17915566 写道
netfork 写道
哎,管理员在哪里啊~~~
发现只要不是纯技术问题,均可以在论坛(非入门版)里混~

我觉得此人思想有点..每个人都是从不懂-学习-懂,为什么我以我的方式理解>的东西不能写出来,最起码我是用心写的,你找管理员干嘛?难道我自己总结下干扰你了


在javaeye中,你不能发这种东东的!你就是再用心写,就算你能给更多人与启迪参考与帮助都不能。

在你发的文中不能有明显的牛人们能发现的错误!

正确的做法是:把你的真正的内容放到blog或其他网站中,然后发一个说明,一个效果图,OK!然后别在论坛里讨论!

要讨论,一定要讨论高质量的东东!

在javaeye中,像你类讨论,只配新手区!(不好意思,这是教训!像你这种待遇我已经习惯了。)
1 请登录后投票
   发表时间:2008-12-04  
对了,发现javaeye的圈子没有这类似的机制,人群也较多!

在javaeye中,论坛潜规则是给高手过招的地方!(仔细读版规,琢磨一下)
0 请登录后投票
   发表时间:2008-12-05  
yunhaifeiwu 写道

对了,发现javaeye的圈子没有这类似的机制,人群也较多!在javaeye中,论坛潜规则是给高手过招的地方!(仔细读版规,琢磨一下)

一个人和一个人理解不一样,我理解的javaeye也许跟你琢磨的不是很一样,不好意思哦。
0 请登录后投票
   发表时间:2008-12-05  
xin911 写道
很典型的 饿汉,懒汉式单例类吧
public class Singleton {  
 
    private static final Singleton s = new Singleton();  
 
    private Singleton() {  
    }  
 
    public static Singleton getInstance() {  
        return s;  
    }  
}

说是更符合java面向对象语言特点--推荐

推荐
0 请登录后投票
   发表时间:2008-12-06  
防止在对象构造过程中,也就是构造函数执行过程中,被其他线程抢占,从而产生第二个对象
0 请登录后投票
   发表时间:2008-12-07  
单例模式,学习了。
0 请登录后投票
   发表时间:2008-12-08  
学习,大家都很厉害,都是榜样呀,努力!
0 请登录后投票
   发表时间:2008-12-08   最后修改:2008-12-08
第一个是单线程下,在多线程下为防止并发访问导致实例化2个出来,要用第2个,更好的方法是:
  public static Singleton getInstance(){
     if(instance == null)
         synchronized(Singleton.Class){
             if(instance == null)
                 instance = new Singleton();
         }
     }
     return instance;
}

双重检查加锁,只在第一次调用getInstance()时才要同步,提高性能
0 请登录后投票
   发表时间:2008-12-08  
nairuo1988 写道
第一个是单线程下,在多线程下为防止并发访问导致实例化2个出来,要用第2个,更好的方法是:
  public static Singleton getInstance(){
     if(instance == null)
         synchronized(Singleton.Class){
             if(instance == null)
                 instance = new Singleton();
         }
     }
     return instance;
}

双重检查加锁,只在第一次调用getInstance()时才要同步,提高性能


打板子!看我发的网址,有多线程下,大多数单例模式的应用进行了测试与介绍。如果有兴趣,自已照他的方法检查你的双重检查加锁吧!
0 请登录后投票
   发表时间:2008-12-09   最后修改:2008-12-09
网上还有一种方法是:
Java代码
public class Singleton {  
private static Singleton instance = null; 
private Singleton(){ 
  //应该加上这个 

public static synchronized Singleton getInstance(){ 
  if(instance==null){ 
    instance = new Singleton(); 
  } 
  return instance; 

public void sys(String s){ 
  System.out.println(s+"singleton........."); 


网上说可以这样可以防止多个实例。
而我用测试类进行测试时,却可以实例化此类,不知道为何,谢谢能有人讨论下。

=====================
正想说,才发现被人已经说了。楼主这里的构造函数没指出,在java中,缺省就意味着有一公有的构造函数。
0 请登录后投票
论坛首页 Java企业应用版

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