单例设计模式

单例设计模式:
通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例,即一个类只有一个对象实例
主要实现步骤分为三步:
①将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象
②在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型
③定义一个静态方法返回这个唯一对象

单例设计模式是分为两种:
1.饿汉式
立即加载就是使用类的时候已经将对象创建完毕
优点:实现起来简单,没有多线程同步问题
缺点:当单例类被加载的时候,会初始化static的instance,静态变量被创建并分配内存空间,从这以后,这个static的instance对象便一直占着这段内存(即便你还没有用到这个实例),当类被卸载时,静态变量被摧毁,并释放所占有的内存,因此在某些特定条件下会耗费内存。
代码实现:

2.懒汉式
在被调用方法时才创建对象
优点:实现简单,当类SingletonTest被加载的时候,静态变量static的instance未被创建并分配内存空间,当getInstance方法第一次被调用时,初始化instance变量,并分配内存,因此在某些特定条件下会节约了内存。
缺点:存在多线程问题
代码实现
(多线程情况下)

(非多线程情况下)

原文地址:https://www.cnblogs.com/lch-Hao/p/10817575.html