单例模式:为什么会有单例模式?单例模式的意思,在我们的应用上下文中,有且只有一个某类的对象,一般都是核心业务类
场景:单例模式应用非常广泛,比如spring的beanFacotry 用来构建bean的
如何保证我们单例
- 随应用的启动,实例化单例(饿汉)
- 在应用环境需要的时候,实例化单例(懒汉)
1.将该类的构造函数私有化(private)
2. 如何保证懒汉式的单例只有一个:
由于懒汉式的单例模式是在我们需要的时候才进行初始化的,这就可能造成在多线程下单例不止一个的问题
采用同步代码块的方式
3.如何防止反射实例化
构造函数加锁,结合标志位来控制