主程序:
package singleton.test;
import singleton.common.SingletonClazz;
public class TestDemo {
public static void main(String[] args) {
SingletonClazz s1 = SingletonClazz.getInstanse();
SingletonClazz s2 = SingletonClazz.getInstanse();
System.out.println(s1 == s2 ? 1 : 0);
}
}
调用的类:
package singleton.common;
public class SingletonClazz {
/**
* static-确保无论如何就是这唯一一个实例
*/
private static SingletonClazz singletonClazz;
/**
* 私有的构造函数确保外界无法实例化该类
*/
private SingletonClazz() {
// singletonClazz = new SingletonClazz();// 啊多么痛的领悟-递归了
}
/**
* 静态变量确保外界有入口可以获取到唯一实例
*
* @return
*/
public static SingletonClazz getInstanse() {
if (singletonClazz == null) {// 如果为空就实例化
singletonClazz = new SingletonClazz();
}
return singletonClazz;// 返回唯一实例
}
}