单例模式:一个类返回一个对象的引用和一个获得该实例的方法(必须是静态方法)。当调用这个方法时,如果该类持有的引用不为空,就返回这个引用。如果为空,就创建该类的实例并赋值给引用。同时,记得将构造方法私有。
好处:节省内存,因为他限制了内存实例的个数,有利于垃圾回收。
代码实现如下(饿汉式):
public class Singleton {
private Singleton() {
}
private final static Singleton s=new Singleton();
public static Singleton getInstance() {
return s;
}
}
测试代码:
public class TestDemo {
public static void main(String[] args) {
Singleton s = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s);
System.out.println(s2);
if(s.equals(s2)) {
System.out.println("同一个实例");
}else {
System.out.println("不是同一个实例");
}
}
}
效果如下:
Singleton@15db9742
Singleton@15db9742
同一个实例