《java设计模式总结》常见的五种单例设计模式实现方法
2016-08-22 21:02
225 查看
常见的五种单例设计模式实现方法
主要:
1.饿汉式(线程安全,调用效率高。但是,不能实现延迟加载)
2.懒汉式(线程安全,调用效率不好。但是,可以实现延迟加载)
其他:
3.双重检测锁式(由于JVM底层内部模型原因,偶尔出现问题,不建议使用,知道就行
4.静态内部类式(线程安全,调用效率高。可以实现延时加载)
5.枚举式(线程安全,调用效率高,不能延迟加载,并且可以天然的防止反射和反序列化漏洞!)
饿汉式和懒汉式的区别:
从名字上来说,饿汉和懒汉
饿汉就是类一旦加载,就把单例初始化化完成,保证调用get方法的时候,单例已经存在而懒汉式比较懒,只用当调用get方法时,才回去初始化这个单例。
什么是线程安全:
如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
或者说:一个类或者程序所提供的接口对于线程来说是原子操作,或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题,那就是线程安全的。
相关文章推荐
- 单例设计模式的几种常见实现方法
- 常见设计模式的解析和实现(C++)之二十-Visitor模式
- 五种常见的PHP设计模式
- 常见设计模式的解析和实现(C++)之七-Bridge模式
- 常见设计模式的解析和实现
- 常见设计模式的解析和实现(C++)之八-Composite模式
- 五种常见的PHP设计模式(择自互联网非本人所写)
- 常见设计模式的解析和实现(C++)之四-Prototype模式
- 常见设计模式的解析和实现(C++)之六-Adapt模式
- 常见设计模式的解析和实现(C++)之十-Proxy模式
- 五种常见的 PHP 设计模式
- 常见设计模式的解析和实现(C++)之二十一-完结篇
- [转]五种常见的PHP设计模式
- 常见设计模式的解析和实现(C++)之十三-FlyWeight模式
- 常见设计模式的解析和实现(C++)之十八-Iterator模式
- 常见设计模式的解析和实现(C++)之五-Singleton模式
- 常见设计模式的解析和实现(C++)之十七-State模式
- 五种常见的 PHP 设计模式
- 常见设计模式的解析和实现(C++)之十二-ChainOfResponsibility模式
- 五种常见的PHP设计模式