Java单例模式:饿汉式和懒汉式的实现

1、饿汉式

public class HungrySingleton { /**jvm保证instance只被初始化一次*/ private static HungrySingleton instance = new HungrySingleton();    /**阻止外部使用new实例化对象*/   private HungrySingleton(){   }   /**   * 获取实例   * @return 唯一的instance   */   public static HungrySingleton getInstance() {    return instance;   } }

2、懒汉式

public class LazySingleton {   /**   * 阻止外界使用new实例化对象   */   private LazySingleton() {   }   /**   * 只有在调用getInstance()时此类才会被装载   * 在SingletonKerriganF.java中说明了加载顺序   */   private static class SingletonHolder {   /**   * 对象实例,jvm保证只初始化一次   */   static final LazySingleton INSTANCE = new LazySingleton();   }   /**   * 获取实例   * @return 返回唯一实例   */   public LazySingleton getInstance() {   return SingletonHolder.INSTANCE;   } }

你可能感兴趣的:(java,jvm,Class)