05Java常见问题之设计模式
1.单例模式
概念:确保某个类只有一个实例,而且自bai行实例化并向整个系统提供这个实例,在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例的模式;懒汉式每次获取实例都同步,所以效率较差,其他都差不多。
①懒汉式(线程不安全)
通过提供一种静态的对象instance,利用private权限的构造方法,和静态的getInstance方法,提供给外部一个获取单例的方式
②懒汉式(线程安全)
加了一个synchronized线程锁
③饿汉式(线程安全)
直接初始化instance,不管是否调用这个对象,都已经把对象创建出来了
④饿汉式(线程安全——静态内部类)
使用内部类,调用getInstance()方法时才加载对象达到类似懒汉式模式的效果
⑤枚举(线程安全——自动序列化)
创建枚举类型的INSTANCE,通过SingletonDemo.INSTANCE.doSomething(调用方法)