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

网站开发工程师面试问哪些问题seo优化报告

网站开发工程师面试问哪些问题,seo优化报告,用树莓派做网站服务器好吗,网站建设公司投诉电话写享元模式的时候,会想使用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.mnyf.cn/news/35357.html

相关文章:

  • 简单网站百度极速版下载
  • 如何找做网站的公司长沙网站seo收费
  • 九江做网站公司seo项目优化案例分析文档
  • 千助网站公司长沙网站搭建优化
  • 企业手机版网站惠州seo计费
  • 网站定制开发需要什么资质天津百度爱采购
  • 网站怎么留住用户北京it培训机构哪家好
  • 重庆网上商城网站建设公司app推广方式
  • 武汉网站关键词排名网络推广seo怎么弄
  • 合肥市建设网站网站免费优化软件
  • 新手学做网站 pdf新闻头条免费下载安装
  • WordPress设置二级域名怎么进行网站关键词优化
  • wordpress开启多站点好处台州seo服务
  • 新网站建设流程企业网站排名优化
  • 做微商去哪些社交网站百度电话号码
  • 机票网站手机版建设成都网站建设团队
  • 网页 网站广东东莞今日最新消息
  • wordpress 原子特效油烟机seo关键词
  • mysql php动态网站开发360竞价推广登录入口
  • 网站建设公司扬州长沙seo外包服务
  • p2p网站建设方案哪里有培训班
  • 企业搭建网站的必要性关键词可以分为哪三类
  • wordpress建站流程广告服务平台
  • 八年级信息技术网站建立怎么做百度信息流推广教程
  • 宣传推广策略长沙关键词优化方法
  • 商城 静态网站模板热搜排行榜今日排名
  • 在线网站建设平台哪个好谷歌推广怎么操作
  • 黑河做网站免费网页制作成品
  • 小游戏制作平台怎么优化自己公司的网站
  • 建设工程中标通知书查询网站新闻博客软文自助推广