1.单例模式
特点:只存在一个对象实例(模板对象)。
一、饿汉式
1.类的构造器私有化(防止别人new创建)
2.只有类的内部创建对象
3.向外部提供一个公共方法getInstance(),返回对象实例。
优点:立即加载实例化,没有线程同步的问题。
缺点:没有懒加载的效果,浪费内存。
二、懒汉式
1.线程不安全
提供一个静态公共方法getInstance(),调用这个方法才创建对象。
缺点:多个线程调用时,会产生多个实例。
2.线程安全
方法加个同步锁,虽然效率低,但是安全,一般不建议用。
3.双重检查
第一个线程进来,判空,创建完对象,另外一个线程进来,发现已经创建好了。
4.静态内部类
类加载时,内部类不会被加载。
类的方法去调用静态内部类创建对象。
只有一个线程去实例化。
5.枚举