当前位置: 首页 > news >正文

网站开发工程师面试问哪些问题随州网络推广

网站开发工程师面试问哪些问题,随州网络推广,wordpress 微官网主题下载,网页设计图片大小怎么改写享元模式的时候,会想使用ConcurrentHashMap来保证并发,没有使用双重锁会不会有问题?但是在synchronize代码块里面需要尽量避免throw异常,希望有经验的同学能够给出解答? 1月6号补充:没有使用双重锁会有问…

写享元模式的时候,会想使用ConcurrentHashMap来保证并发,没有使用双重锁会不会有问题?但是在synchronize代码块里面需要尽量避免throw异常,希望有经验的同学能够给出解答?

1月6号补充:没有使用双重锁会有问题

享元模式UML图如下:
在这里插入图片描述

@Component
public class PayContextFactory extends AbstractPayContextFactory<PayContext> {//享元模式private static final Map<String, PayContext> payContexts = new ConcurrentHashMap<>();@Overridepublic PayContext getContext(Integer payType) {StrategyEnum strategyEnum =payType == 1 ? StrategyEnum.alipay :payType == 2 ? StrategyEnum.wechat :null;if (Objects.isNull(strategyEnum)) {throw new UnsupportedOperationException("payType not supported!");}//尝试从map中获取ContextPayContext context = payContexts.get(strategyEnum.name());//第一次调用if (Objects.isNull(context)) {try {//通过反射,创建具体类PayStrategyInterface payStrategy = (PayStrategyInterface) Class.forName(strategyEnum.getValue()).newInstance();//将具体策略类作为入参,创建payContextPayContext payContext = new PayContext(payStrategy);payContexts.put(strategyEnum.name(), payContext);} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {throw new UnsupportedOperationException("get strategy failed!");}}return payContexts.get(strategyEnum.name());}
}

使用双重检查锁后的代码

@Component
public class PayContextFactory extends AbstractPayContextFactory<PayContext> {//享元模式private static final Map<String, PayContext> payContexts = new ConcurrentHashMap<>();@Overridepublic PayContext getContext(Integer payType) {StrategyEnum strategyEnum =payType == 1 ? StrategyEnum.alipay :payType == 2 ? StrategyEnum.wechat :null;if (Objects.isNull(strategyEnum)) {throw new UnsupportedOperationException("payType not supported!");}//尝试从map中获取ContextPayContext context = payContexts.get(strategyEnum.name());//第一次调用if (Objects.isNull(context)) {synchronized (payContexts) {context = payContexts.get(strategyEnum.name());if (Objects.isNull(context)) {try {//通过反射,创建具体类PayStrategyInterface payStrategy = (PayStrategyInterface) Class.forName(strategyEnum.getValue()).newInstance();//将具体策略类作为入参,创建payContextPayContext payContext = new PayContext(payStrategy);payContexts.put(strategyEnum.name(), payContext);} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {throw new UnsupportedOperationException("get strategy failed!");}}}}return payContexts.get(strategyEnum.name());}
}
http://www.fp688.cn/news/161675.html

相关文章:

  • 做网站反链软文推广方案
  • 即墨城乡建设局网站seo整站优化更能准确获得客户
  • 深圳做企业网站的公司做一个个人网站
  • 做一个h5需要多少钱惠州seo报价
  • 公众号怎么制作合集池州网站seo
  • 做房地产需要做网站吗网站设计报价方案
  • 电脑网站历史记录怎么查看网络营销广告策划
  • 男女做暖免费网站 香蕉百度最新版app下载安装
  • 人是用什么做的视频网站腾讯广点通广告投放平台
  • 烟台海阳市专业做网站网站怎么做谷歌推广
  • 营销型网站特点今日热点新闻头条国内
  • wap网站html模板营销型网站建设要点
  • 网站的静态页面用什么做seo关键词如何设置
  • 做微信电影网站网页设计制作网站模板图片
  • 网站建设行业数据搜索引擎优化seo专员
  • 用discuz做的网站上海发布最新情况
  • 那家公司做网站市场调研报告范文大全
  • 手机上的软件网站建设seo三人行论坛
  • 企业备案网站名称怎么填杭州seo价格
  • android移动网站开发详解光盘下载制作网站要花多少钱
  • 网站建设w亿码酷1流量订制怎么让百度收录我的网站
  • 做自己的网站多少钱网站地址ip域名查询
  • paypal网站做外贸百度下载app下载
  • 北京网站建设技术网站平台推广
  • 常用的软件开发文档有哪些国内好的seo
  • 域名备案需要有网站吗seo关键词快速获得排名
  • 做苗木网站哪家做得好百度推广关键词质量度
  • 门户网站申请企业营销策划书
  • 上海电子商务网站开发网站营销策划公司
  • 建设银行社会四川招聘网站seo搜索引擎推广