DCL 单例 用λ表达式来实现
import java.util.Optional;
public class Singleton{
//1. 构造方法私有化
//2. 持有自身的静态引用
//3. 提供获取自身静态引用的公有静态方法
private Singleton(){}
private static volatile Singleton singleton;
public static Singleton getInstance(){
return Optional.ofNullable(singleton).orElseGet(()->{
synchronized(Singleton.class){
return Optional.ofNullable(singleton).orElse(new Singleton());
}
});
}
}