Java单例模式(singleton),饿汉式和内部类的区别

来源:互联网 发布:linux系统chown指令 编辑:程序博客网 时间:2024/06/05 03:37
单例模式,也叫单子模式,是一种常用的软件设计模式。 在应用这个模式时,单例对象的类必须保证只有一个实例存在

方法一:饿汉式单例

public class Singleton {
   private final static Singleton INSTANCE = new Singleton();

   private Singleton() { }

   public static Singleton getInstance() {
      return INSTANCE;
   }
}

方法二:借助内部类

public class Singleton {

   private Singleton() { }

   private static class SingletonHolder {
      private final static Singleton INSTANCE = new Singleton();
   }

   public static Singleton getInstance() {
      return SingletonHolder.INSTANCE;
   }
}


两种加载模式的区别:
饥饿模式,每个对象在没有使用之前就已经初始化了。这就可能带来潜在的性能问题:如果这个对象很大呢?没有使用这个对象之前,就把它加载到了内存中去是一种巨大的浪费。

针对这种情况,我们可以对以上的代码进行改进,使用一种新的设计思想——延迟加载


0 0
原创粉丝点击