单例设计模式
作用:保证整个应用程序中某个实例有且只有一个
类型:饿汉模式,懒汉模式
1,将构造方法私有化,不允许外界直接创建对象
2,创建类的唯一实例(static)可以通过类名调用
3,提供一个获取实例的方法
饿汉模式
特点:加载类时比较慢,但运行时获取对象比较快
线程安全
2,private static修饰
3,public static修饰
懒汉模式
特点:加载类时比较快,但运行时获取对象比较慢
线程不安全
2,同饿汉模式,没有加载实例
3,第二步只声明了类的实例,没有实例化,我们在这里判断一下实例是否为空
public class Singleton {
//private static Singleton instance=null; //声明一个对象
private static Singleton instance=new Singleton();
private Singleton(){
System.out.println("所有的军人共用一个身份证号");
}
/**
- 调用 getInstance()方法 才去加载,才加载在内存当中 懒汉
- private static Singleton instance=new Singleton();// 饿汉
- 程序的运行期的时候,就加载到内存空间
*/
synchronized public static Singleton getInstance(){//同步 //懒汉
if(instance==null){
instance=new Singleton(); //创建一个军人的对象
}
return instance;
}
}