/**
* 最好的饿汉模式实现方法
* @author 80256848
*
*/
public enum EnumSingletonBest2 {
INSTANCE;
}
class Main{
public static void main(String[] args){
EnumSingletonBest2 instance = EnumSingletonBest2.INSTANCE;
}
}
/**
* 最好的懒汉模式
* 静态内部类
* 根据 静态内部类 的特性,同时解决了按需加载、线程安全的问题,同时实现简洁
* 1.在静态内部类里创建单例,在装载该内部类时才会去创建单例
* 2.线程安全:类是由 JVM加载,而JVM只会加载1遍,保证只有1个单例
*
* @author 80256848
*
*/
public class InnerClassSingleton4 {
private static class Singleton4{
private static InnerClassSingleton4 innerClassSingleton4 =
new InnerClassSingleton4();
}
private InnerClassSingleton4(){};
public static InnerClassSingleton4 getInstance(){
if(Singleton4.innerClassSingleton4 == null){
synchronized(InnerClassSingleton4.class){
if(Singleton4.innerClassSingleton4 == null){
Singleton4.innerClassSingleton4 = new InnerClassSingleton4();
}
}
}
return Singleton4.innerClassSingleton4;
}
}