//单例类示例
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值相等,内存地址相等,是同一个成员属性
转载于:https://my.oschina.net/u/1401580/blog/225393