java —— 单例模式 singleton
一、 单例模式 singleton
单例模式,在我看来,就是一个类,可以称它为 单例类 ,单例类有以下特点
-
- 单例类在堆内存中只会存在一份,即永远只有一个固定不变的堆内存地址
- 单例类是自己主动实例化的
- 工程中所有的类 都可以访问到单例类
二、 单例类的创建
-
- 拥有私有的构造方法
- 一个私有、静态的 实例化,只供内部调用
- 提供一个公开、静态的方法,用来返回 内存变量
1 public class Singleton { 2 // 定义了一个私有、静态的 实例化 3 private static Singleton instance = new Singleton(); 4 5 private Singleton(){ 6 // 私有的无参构造方法,避免被其他类 调用实例化 7 } 8 9 // 一个公开 静态的方法,返回了上面存着内存地址的变量 10 public static Singleton getInstance(){ 11 return instance; 12 } 13 }
或者
1 public class Singleton { 2 3 private static Singleton uniqueInstance = null; 4 5 private Singleton() { 6 // 私有的无参构造器 7 } 8 9 public static Singleton getInstance() { 10 if (uniqueInstance == null) { 11 uniqueInstance = new Singleton(); 12 } 13 return uniqueInstance; 14 } 15 }