1.常见5种单例模式实现方式
-主要:
①饿汉式:线程安全,调用效率高,但不能延时加载;
②饱汉式:线程安全,调用效率不高,能延时加载
-其他:
①双重检测锁式:由于JVM底层内部模型原因,偶尔会出问题,不建议使用;
②静态内部类式:线程安全,调用效率高,能延时加载;
③枚举式:线程安全,调用效率高,但不能延时加载。可以天然的防止反射和反序列化漏洞。
2.如何选用
-单例对象,占用资源少,不需要延时加载:枚举式 好于 饿汉式;
-单例对象,占用资源大,需要延时加载:静态内部类 好于 懒汉式。