1. 定义
该类只有一个实例,所有指向该类型实例的引用都是指向这个实例的。这样可以保证数据的一致性,也可以节省空间。
2. 创建
1)饿汉式
加载类时较慢,但运行时获得对象的速度比较快,它从加载到应用结束会一直占用资源。
class Singleton
{
//在内部准备好一个对象
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
2)懒汉式
加载类时较快,但运行时获得对象的速度较慢,它在整个应用的生命周期中只有一部分时间在占有资源。
class Singleton{
private static Singleton instance = null;
private Singleton(){}
public static Singleton getInstance(){// 将instance传递到外部去
if(instance == null){
instance = new Singleton();
}
return instance;
}
}