一、什么是单例模式?
单例模式就是在整个系统内存中,某一个类只有一个实例,所有的请求都只用这一个对象。
二、饿汉式单例
1.使用静态变量初始化。
2.使用静态代码块初始化。
三、懒汉式单例
1.判断为空初始化
注意: 会有线程安全问题。
2.在方法上加锁。
虽然解决了线程安全问题, 但是效率会大大降低
3.在内部加锁。
也没有解决线程安全问题。
4.在内部加锁,并进行双重判断。
比较完美的写法,既解决了线程安全问题,又能提高效率的懒汉式单例,建议使用这种写法。
5.使用静态内部类。
更完美的写法。