单例模式属于Java设计模式的创建型模式,用于创建对象时使用,单例模式的思想是保证该类的对象在外部调用时始终都获取的一个该类的实例;
一、单例模式的创建都遵循以下规律:
1、私有化构造方法;
2、在内部定义该类的实例对象,私有化封装;
3、在类中定义静态公开方法,用于返回该类的实例对象;
二、具体单例模式的创建分为六种方式:
1、饿汉式:
代码
特点:饿汉式无法实现在构造器中进行参数传递;
2、懒汉式:
代码:
特点:需要同步锁,可以再构造器中进行参数传递;
同步锁(synchronized):使用同步锁会保证被修饰的代码块的原子性(内存模型三大特性之一),也就是加锁,当有多个线程同时调用该代码块时会查看是否被加锁,加锁时该线程等待,直到代码块执行完毕后解锁,该线程继续执行;