首先,让我们先来看看下面的一个单例模式代码:

public class SingleTon {
private static final SingleTon single=new SingleTon();

private SingleTon() { }

public synchronized static SingleTon getInstance() {
return single;
}
}


由于本类的构造方法是私有的,因此其他类无法通过new SingleTon() 来创建本类的一个实例,但本类提供了一个公有外部接口getInstance(),此接口返回了本类的一个对象,所以可以通过getInstance()外部接口来获得本类的实例
 

由于single是一个静态成员,在类加载时,便在内存中开辟一块固定的空间存放此对象。此后,每次使用getInstance()方法时获得的对象都是在类加载时的single!(一次加载,永久使用)

 

单例模式的特点:
1.构造方法私有化(如:private SingleTon())
2.声明一个私有静态成员变量,为本类的一个对象(如:single)
3.提供创建本类对象的入口函数(如:getInstance())