懒汉式
public class SingletonLazy {
private static volatile SingletonLazy instance;
public static SingletonLazy getInstance() {
if (instance == null) {
synchronized (SingletonLazy.class) {
if (instance == null) {
instance = new SingletonLazy();
}
}
}
return instance;
}
public void method() {
System.out.println("我是懒汉式里面的方法");
}
}
饿汉式
public class SingletonHungry {
private static SingletonHungry instance = new SingletonHungry();
private SingletonHungry(){}
public SingletonHungry getInstance() {
return instance;
}
public void method() {
System.out.println("我是饿汉式里面的方法");
}
}
懒汉式与饿汉式的比较
- 懒汉式
- 延迟加载 - 饿汉式
- 优点:实现简单,无多线程问题
- 缺点:无论是否使用,都占用内存资源