专注JavaWeb开发 首页制式『默认式 OR 时间轴 网站地图|RSS订阅|设为首页|加入收藏
当前位置:首页 >Java >Java基础 > 正文

JAVA 单例模式

来源: 51CTO 作者: 51CTO 发布时间: 2015-04-07 浏览次数:

单例模式(SINGLETON):单例模式确保某一个类只有一个实例,而且是自行实例化向整个系统提供这个实例单例模式,单例模式只应在有真正的“单一实例”的需求时才可使用。

使用场景:J2EE中,servlet就是单例的,某一个servlettomcat中只有一个实例,这就是为啥,<%! i=0>,<% i=0>的区别,在使用定义变量的时候,i是被所有的访问者共享的,而使用<%i=0>时,i是成员变量。每一个访问者独享自己的i。

UML:

 


java代码实现如下

第一种实现

写道public class Singleton { 
private Singleton singleton=new Singleton(); 
private Singleton(){}; 
public Singleton getInstance(){ 
return singleton; 

}

 第二种实现:

写道
public class Singleton2 { 
private Singleton2 singleton=null; 
private Singleton2(){}; 
public Singleton2 getInstance(){ 
if(null==singleton){ 
singleton=new Singleton2(); 

return singleton; 


 这两种实现大眼一看,好像没有什么区别

但当在多线程中的时候,第二种实现就无法保证是单例了。


QQ群: 武汉地区(142173356)验证消息JavaWeb1024

网友共有【】评论,点击查看



x 微信关注我们 随时获取最新网站资讯