单例模式就是运行环境中只存在一个实例,
java.lang.Object类 的toString() 输出的内容是内存地址, 因此自定义的类 如果没有重写toString() 时 也同样。
运行结果:
我是第1个实例
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164
java.lang.Object类 的toString() 输出的内容是内存地址, 因此自定义的类 如果没有重写toString() 时 也同样。
package com.lyx.demo;
/**
* 定义一个 单例的类
* 作者:李亚希
*/
public class SingletonDemo {
public static int index; //标示 类的索引
private SingletonDemo()
{
index++;
System.out.println("我是第"+index+"个实例");
}
public static SingletonDemo instance=null;
public static SingletonDemo getInstance()
{
if(instance==null)
{
instance= new SingletonDemo();
}
return instance;
}
}
package com.lyx.demo;
/*
* 单例测试类
*/
public class TestSingleton {
public static void main(String[] args) {
SingletonDemo sd1=SingletonDemo.getInstance();
System.out.println(sd1);
SingletonDemo sd2=SingletonDemo.getInstance();
System.out.println(sd2);
SingletonDemo sd3=SingletonDemo.getInstance();
System.out.println(sd3);
SingletonDemo sd4=SingletonDemo.getInstance();
System.out.println(sd4);
}
}
运行结果:
我是第1个实例
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164
com.lyx.demo.SingletonDemo@c17164