java中两种单例模式
2016-02-15 16:31
519 查看
//懒汉式(线程不安全) class LazySingleton{ private static LazySingleton singleton; private LazySingleton(){} public static LazySingleton getInstance(){ if(singleton==null){ singleton = new LazySingleton(); } return singleton; } } //饿汉式(推荐使用) class eSingleTon{ private static eSingleTon singleton = new eSingleTon(); private eSingleTon(){} public static eSingleTon getInstance(){ return singleton; } }
上面两个是单例模式,想必都不陌生。
对于懒汉式有个缺点,就是在多线程的情况会有一定的问题存在。假如线程A和线程B同时实例这个单例。进入if的判空就会分别实例出一个singleton.这就违背了单例模式的初衷。
这里推荐使用饿汉式,每次都会实例化,避免了多线程的问题
相关文章推荐
- Java判断当前时间是否在时间段中
- JAVA流
- Java的多线程之阻塞队列
- java中实现四舍五入的4种方法
- spring security 3中的10个典型用法小结
- Java 高并发缓存与Guava Cache
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- eclipse中的android布局文件的快捷键Alt+/不起作用的一种解决方法
- SpringMvc:在使用@RequestBody和@ResponseBody的时候报415错误
- 菜鸟学SSH(二)——Struts2国际化手动切换版
- eclipse maven 插件的安装和配置
- Struts实现多国语言切换
- How to add or list certificates from keystore or trustStore in Java - Keytool Example Read more: ht
- 各种排序算法的分析及java实现
- struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
- java中int转String类型,String类型转int类型
- 如何设置Eclipse中的文字
- Spring Boot 集成Swagger
- Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
- Java中弹出对话框的方法