饿汉模式:一初始化则就会创建私有的静态的唯一实例 ,
不会出现线程安全问题 因为只产生了唯一实例
private static ClassName name = new ClassName
懒汉模式
初始化不会被创建 只有在真正需要使用的时候才会创建实例。需要编写get同步方法,因为不确定会创建多少个实例而产生线程安全问题。
private static ClassName name = null;
public static synchronized ClassName getName () {
if(name == null){
name = new ClassName ();
}
return name ;
}
单例模式的三种要求:
- 一个类只有一个实例
- 必须自行创建实例
- 必须自行向整个系统提供这个实例
饿汉模式懒汉模式都是属于单例模式;