锁定老帖子 主题:学习单例模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-04
最后修改:2008-12-04
wangchao_17915566 写道 netfork 写道 哎,管理员在哪里啊~~~
发现只要不是纯技术问题,均可以在论坛(非入门版)里混~ 我觉得此人思想有点..每个人都是从不懂-学习-懂,为什么我以我的方式理解>的东西不能写出来,最起码我是用心写的,你找管理员干嘛?难道我自己总结下干扰你了 在javaeye中,你不能发这种东东的!你就是再用心写,就算你能给更多人与启迪参考与帮助都不能。 在你发的文中不能有明显的牛人们能发现的错误! 正确的做法是:把你的真正的内容放到blog或其他网站中,然后发一个说明,一个效果图,OK!然后别在论坛里讨论! 要讨论,一定要讨论高质量的东东! 在javaeye中,像你类讨论,只配新手区!(不好意思,这是教训!像你这种待遇我已经习惯了。) |
|
返回顶楼 | |
发表时间:2008-12-04
对了,发现javaeye的圈子没有这类似的机制,人群也较多!
在javaeye中,论坛潜规则是给高手过招的地方!(仔细读版规,琢磨一下) |
|
返回顶楼 | |
发表时间:2008-12-05
yunhaifeiwu 写道 对了,发现javaeye的圈子没有这类似的机制,人群也较多!在javaeye中,论坛潜规则是给高手过招的地方!(仔细读版规,琢磨一下) 一个人和一个人理解不一样,我理解的javaeye也许跟你琢磨的不是很一样,不好意思哦。 |
|
返回顶楼 | |
发表时间:2008-12-05
xin911 写道 很典型的 饿汉,懒汉式单例类吧
public class Singleton { private static final Singleton s = new Singleton(); private Singleton() { } public static Singleton getInstance() { return s; } } 说是更符合java面向对象语言特点--推荐 推荐 |
|
返回顶楼 | |
发表时间:2008-12-06
防止在对象构造过程中,也就是构造函数执行过程中,被其他线程抢占,从而产生第二个对象
|
|
返回顶楼 | |
发表时间:2008-12-07
单例模式,学习了。
|
|
返回顶楼 | |
发表时间:2008-12-08
学习,大家都很厉害,都是榜样呀,努力!
|
|
返回顶楼 | |
发表时间: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()时才要同步,提高性能 |
|
返回顶楼 | |
发表时间: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()时才要同步,提高性能 打板子!看我发的网址,有多线程下,大多数单例模式的应用进行了测试与介绍。如果有兴趣,自已照他的方法检查你的双重检查加锁吧! |
|
返回顶楼 | |
发表时间: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中,缺省就意味着有一公有的构造函数。 |
|
返回顶楼 | |