黑马程序员技术交流社区
标题:
单例设计模式
[打印本页]
作者:
s476596497
时间:
2014-1-20 21:45
标题:
单例设计模式
private Single(){}
private Single s=new Single();
private static Single getInstance(){
retutn s;
}
private Single (){}
private Single s=new Single();
private static synchronized Single getInstance(){
return s;
}
第二种就是加了一个同步,两种单例有什么区别?第一种单例模式是安全的,再加一个同步会不会造成资源浪费呢?
作者:
黄晓鑫
时间:
2014-1-20 21:55
哥们你的代码是错的 对外提供获取对象的方法是public类型的 资源浪费是不会 只不过第二种是为了应付面试的 因为涉及到了多线程
作者:
孤独的天奇
时间:
2014-1-20 22:01
饿汉式方式创建单例,建议用饿汉式,在多线程下也不会出现问题
private Single(){}
private Single s=new Single();
public static Single getInstance(){
retutn s;
}
作者:
姜胜凯
时间:
2014-1-20 22:05
本帖最后由 姜胜凯 于 2014-1-20 22:07 编辑
俩点错误。1对外提供获取对象方法,权限应该是public的。2.这种单例设计模式叫饿汉式。是不需要加同步锁的。你看一下代码,在多线程中不会出现安全问题。重复判断,浪费资源。~ 懒汉式由于是在方法中建立对象。所以在多线程中加锁。防止创建多个对象。造成线程安全问题~~
作者:
曹冬明
时间:
2014-1-20 22:35
这种权限貌似这哥们自己玩上了,谁能用啊,得留个口啊
作者:
s476596497
时间:
2014-1-21 07:59
黄晓鑫 发表于 2014-1-20 21:55
哥们你的代码是错的 对外提供获取对象的方法是public类型的 资源浪费是不会 只不过第二种是为了应付面试的 ...
哥们 你要不说我还真没注意, 非常感谢对外提供的方法是为了对外提供这个类的实例化对象,不该写成私有的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2