单例模式:毕向东 视频第八分钟开始
保证对象在内存中的唯一性
实现方式:
1.构造函数私有化(无法在类外部使用new)
2.在类内部创建一个本类对象(私有的静态成员)
3.提供一个静态方法获取到该对象(公有静态方法可以直接使用类名调用,比较方便)
static修饰的只加载一次
其中:懒汉式使用对象时才会被创建,饿汉式就是类加载时对象就会被创建
懒汉式线程安全问题:synchronized
方案一:获取对象的方法使用synchronized(效率低原因:每个线程都需要判断锁)修饰(单机环境)
方案二:使用双重判断具体如下(效率高,只有前几次对象为空时,才会判断锁)