懒汉模式与饿汉模式
1.饿汉模式demo
来了就要吃,相当于有现成的…
public class EleManSingleton {
//1.创建类的唯一实例,使用private static修饰
private static EleManSingleton singleton=new EleManSingleton();
//2.将构造方法私有化,不允许外部直接创建对象
private EleManSingleton(){
}
//3.提供一个用于获取实例的方法,使用public static修饰
public static EleManSingleton getSingleton(){
return singleton;
}
}
2.懒汉模式demo
来了现做才能吃…
public class LazyManSingleton {
//1.创建类的唯一实例,使用private static修饰
private static LazyManSingleton singleton = null;
//2.将构造方法私有化,不允许外部直接创建对象
private LazyManSingleton(){
}
//3.提供一个用于获取实例的方法,使用public static修饰,同步代码快的demo加锁
public static LazyManSingleton getSingleton1(){
if(singleton == null){
synchronized (LazyManSingleton.class) {
if (singleton == null) {
singleton = new LazyManSingleton();
}
}
}
return singleton;
}
}