单例类示例

//单例类示例
public class Singleton{
	private static Singleton instance = null;//必须:静态私有成员变量 

	//必须:私有构造类
	private Singleton(){

	}
        
        //静态公有工厂方法,返回惟一实例,还不够安全
	/*public static Singleton getInstance(){
		if (instance==null) {
			Synchronized(Singleton.class);
			instance =new Singleton();
		}
		return instance;
	}
	*/
	//参考 http://blog.sina.com.cn/s/blog_75247c770100yxpb.html
	 private static class SingletonHolder{    
             public final static Singleton instance = new Singleton();    
            }
                
	 public static Singleton getInstance(){
	    return SingletonHolder.instance;
	    }
	
	
}

//客户端类
public class ClientSingleTon{
	public static void main(String[] args) {
		Singleton s1=  Singleton.getInstance();
		
		Singleton s2=  Singleton.getInstance();
	
		System.out.println("s1==s2  "+(s1==s2));
		}
}

结果:
s1==s2 true
s1,s2值相等,内存地址相等,是同一个成员属性
相关文章
相关标签/搜索