1.饿汉式
-线程安全、调用效率高。但是,不能延时加载
2.懒汉式
-线程安全、调用效率不高。但是,可以延时加载
3.双重检测锁式
-由于JVM底层内部模型原因,偶尔会出问题,不建议使用
4.静态内部类式
-线程序安全,调用效率高。可以延时加载
5.枚举式
-线程安全,调用效率高,不能延时
如何选用?
-单例对象、占用 资源少,不需要延时加载(枚举式 优于 饿汉式)
-单例对象、占用 资源大,需要延时加载(静态内部类式 优于 懒汉式)
1.饿汉式
-线程安全、调用效率高。但是,不能延时加载
2.懒汉式
-线程安全、调用效率不高。但是,可以延时加载
3.双重检测锁式
-由于JVM底层内部模型原因,偶尔会出问题,不建议使用
4.静态内部类式
-线程序安全,调用效率高。可以延时加载
5.枚举式
-线程安全,调用效率高,不能延时
如何选用?
-单例对象、占用 资源少,不需要延时加载(枚举式 优于 饿汉式)
-单例对象、占用 资源大,需要延时加载(静态内部类式 优于 懒汉式)