中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)工程師面試問哪些問題鄭州好的seo外包公司

網(wǎng)站開發(fā)工程師面試問哪些問題,鄭州好的seo外包公司,網(wǎng)站建設(shè)包括哪些技術(shù),wordpress 主題在哪看寫享元模式的時候,會想使用ConcurrentHashMap來保證并發(fā),沒有使用雙重鎖會不會有問題?但是在synchronize代碼塊里面需要盡量避免throw異常,希望有經(jīng)驗的同學(xué)能夠給出解答? 1月6號補(bǔ)充:沒有使用雙重鎖會有問…

寫享元模式的時候,會想使用ConcurrentHashMap來保證并發(fā),沒有使用雙重鎖會不會有問題?但是在synchronize代碼塊里面需要盡量避免throw異常,希望有經(jīng)驗的同學(xué)能夠給出解答?

1月6號補(bǔ)充:沒有使用雙重鎖會有問題

享元模式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());//第一次調(diào)用if (Objects.isNull(context)) {try {//通過反射,創(chuàng)建具體類PayStrategyInterface payStrategy = (PayStrategyInterface) Class.forName(strategyEnum.getValue()).newInstance();//將具體策略類作為入?yún)?創(chuàng)建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());//第一次調(diào)用if (Objects.isNull(context)) {synchronized (payContexts) {context = payContexts.get(strategyEnum.name());if (Objects.isNull(context)) {try {//通過反射,創(chuàng)建具體類PayStrategyInterface payStrategy = (PayStrategyInterface) Class.forName(strategyEnum.getValue()).newInstance();//將具體策略類作為入?yún)?創(chuàng)建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.risenshineclean.com/news/6819.html

相關(guān)文章:

  • 愛站查詢工具北京網(wǎng)站sem、seo
  • 新疆網(wǎng)站備案代辦谷歌play商店官網(wǎng)
  • 找人做網(wǎng)站沒有做好報案有用嗎電腦優(yōu)化大師
  • 做網(wǎng)站跑matlab程序百度一下網(wǎng)頁
  • 網(wǎng)站開發(fā)計入無形資產(chǎn)嗎sem賬戶托管
  • 網(wǎng)站建設(shè)實力網(wǎng)址檢測
  • 彩票網(wǎng)站里的統(tǒng)計怎么做百度推廣引流
  • 網(wǎng)站數(shù)字證書怎么做百度快照推廣效果怎樣
  • 網(wǎng)站背景怎么做下載谷歌瀏覽器
  • 做游戲視頻網(wǎng)站要批證嗎牛奶推廣軟文文章
  • 最新新聞事件今天國內(nèi)大事2022自動seo系統(tǒng)
  • 網(wǎng)站開發(fā)項目計劃百度快照查詢?nèi)肟?/a>
  • 深圳公明做網(wǎng)站西安網(wǎng)絡(luò)優(yōu)化哪家好
  • 成人本科有學(xué)位證嗎關(guān)鍵詞優(yōu)化需要從哪些方面開展
  • 南山公司網(wǎng)站建設(shè)成都優(yōu)化官網(wǎng)公司
  • 做域名后就得做網(wǎng)站嗎市場營銷平臺
  • 重慶大渡口網(wǎng)站建設(shè)長沙市云網(wǎng)站建設(shè)
  • 營銷建設(shè)網(wǎng)站排名優(yōu)化工具
  • 用nat123做自己的網(wǎng)站一鍵seo提交收錄
  • 深圳本地做網(wǎng)站百度網(wǎng)站收錄入口
  • 南陽網(wǎng)站seo報價cpa推廣平臺
  • wordpress mysql 應(yīng)用網(wǎng)站如何優(yōu)化一個關(guān)鍵詞
  • 織夢源碼怎樣做單頁網(wǎng)站北京百度總部電話
  • 網(wǎng)站外鏈項目外包平臺
  • wordpress建站流程能打開的a站
  • 如何制作一個網(wǎng)站h5百度號碼認(rèn)證平臺個人號碼申訴
  • 三明網(wǎng)站制作網(wǎng)絡(luò)輿情管控
  • 找網(wǎng)站建設(shè)工作室靠譜嗎網(wǎng)站搜索排名靠前
  • 溫州網(wǎng)站制作網(wǎng)站河源seo
  • wordpress建淘寶客網(wǎng)站嗎南昌網(wǎng)站建設(shè)