单例模式
单例模式是为了保证在内存中一只有一个该类的实例存在。
单例模式创建的基本步骤:1.为了避免其他程序过多建立该类对象,创建该类的私有构造方法
2.创建该类的静态实例
3.提供静态方法供其他程序访问,得到该对象(需要注意栈内存,方法区,堆内存之间的关系)
单例模式的两种创建方法:1.饿汉式
先对该类的对象进行初始化,Single类一进内存,就已经在堆内存中创建好了对象
2.懒汉式 对象是方法被调用时,才初始化,也叫做对象的延时加载。
Single类进内存,对象还没有存在,只有调用了getInstance方法是,才创建对象。
// 饿汉式
class Single {
private static Single single = new Single();
private Single() {
}
public static Single getInstance() {
return single;
}
}
// 懒汉式
class SingleDemo {
private static SingleDemo single = null;
private SingleDemo() {
}
public static SingleDemo getInstance() {
if (single == null) {
single = new SingleDemo();
}
return single;
}
}