JAVA实现单例模式

环境:一个教室只有一块黑板,不管上Java课,还是Android课,或者项目管理课的老师都只使用这一块黑板
问题:希望一个类只能有一个实例存在
解决方案:单例模式、static

单例模式有很多种写法

第一种:

JAVA实现单例模式
这种方式是非线程安全的,于是我们想到Synchronized修饰符

JAVA实现单例模式
这种方式虽然可以保证不会出线程问题,但是除了第一次调用时执行了构造函数之外,以后每次调用直接返回instance对象,会耗时在同步准备上,性能不好

JAVA实现单例模式
这种是比较推荐使用的。


第二种:

JAVA实现单例模式
这种方式简单,但是会有一个问题:无论这个类是否被使用,都会创建一个instance对象。并且这种创建方式在一些场景中无法使用。


第三种:
JAVA实现单例模式
这种方式能适应多数场景,这也是Effective Java推荐方式。