成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

又被面試官問(wèn)設(shè)計(jì)模式了,我真的是

不知名網(wǎng)友 / 1944人閱讀

摘要:面試官要不你來(lái)手寫下單例模式唄候選者單例模式一般會(huì)有好幾種寫法候選者餓漢式簡(jiǎn)單懶漢式在方法聲明時(shí)加鎖雙重檢驗(yàn)加鎖進(jìn)階懶漢式靜態(tài)內(nèi)部類優(yōu)雅懶漢式枚舉候選者所謂餓漢式指的就是還沒(méi)被用到,就直接初始化了對(duì)象。

面試官我看你的簡(jiǎn)歷寫著熟悉常見(jiàn)的設(shè)計(jì)模式,要不你來(lái)簡(jiǎn)單聊聊你熟悉哪幾個(gè)吧?

候選者:常見(jiàn)的工廠模式、代理模式、模板方法模式、責(zé)任鏈模式、單例模式、包裝設(shè)計(jì)模式、策略模式等都是有所了解的

候選者:項(xiàng)目手寫代碼用得比較多的,一般就模板方法模式、責(zé)任鏈模式、策略模式、單例模式吧

候選者:像工廠模式、代理模式這種,手寫倒是不多,但畢竟Java后端一般環(huán)境下都用Spring嘛,所以還是比較熟悉的。

面試官要不你來(lái)手寫下單例模式唄?

候選者:?jiǎn)卫J揭话銜?huì)有好幾種寫法

候選者:餓漢式、簡(jiǎn)單懶漢式(在方法聲明時(shí)加鎖)、DCL雙重檢驗(yàn)加鎖(進(jìn)階懶漢式)、靜態(tài)內(nèi)部類(優(yōu)雅懶漢式)、枚舉

候選者:所謂「餓漢式」指的就是還沒(méi)被用到,就直接初始化了對(duì)象。所謂「懶漢式」指的就是等用到的時(shí)候,才進(jìn)行初始化

候選者:那我就都寫寫吧,反正就那些代碼

面試官:那你們用的哪種比較多?

候選者:一般我們項(xiàng)目里用靜態(tài)內(nèi)部類的方式實(shí)現(xiàn)單例會(huì)比較多(如果沒(méi)有Spring的環(huán)境下),代碼簡(jiǎn)潔易讀

候選者:如果有Spring環(huán)境,那還是直接交由Spring容器管理會(huì)比較方便(Spring默認(rèn)就是單例的)

候選者:枚舉一般我們就用它來(lái)做「標(biāo)識(shí)」吧,而DCL這種方式也有同學(xué)會(huì)在項(xiàng)目里寫(在一些源碼里也能看到其身影),但總體太不利于閱讀和理解(:

候選者:總的來(lái)說(shuō),用哪一種都可以的,關(guān)鍵我覺(jué)得要看團(tuán)隊(duì)的代碼風(fēng)格吧(保持一致就行),即便都用「餓漢式」也沒(méi)啥大的問(wèn)題(現(xiàn)在內(nèi)存也沒(méi)那么稀缺,我認(rèn)為可讀性比較重要)

面試官:嗯...

面試官我看你在DCL的單例代碼上,寫了volatile修飾嘛?為什么呢?

候選者:你不記得我們?cè)?jīng)聊過(guò)volatile的了嘛?指令是有可能亂序執(zhí)行的(編譯器優(yōu)化導(dǎo)致亂序、CPU緩存架構(gòu)導(dǎo)致亂序、CPU原生重排導(dǎo)致亂序)

候選者:在代碼new Object的時(shí)候,不是一條原子的指令,它會(huì)由幾個(gè)步驟組成,在這過(guò)程中,就可能會(huì)發(fā)生指令重排的問(wèn)題,而volatile這個(gè)關(guān)鍵字就可以避免指令重排的發(fā)生。

面試官那你說(shuō)下你在項(xiàng)目里用到的設(shè)計(jì)模式吧?

候選者:嗯,比如說(shuō),我這邊在處理請(qǐng)求的時(shí)候,會(huì)用到責(zé)任鏈模式進(jìn)行處理(減免if else 并且讓項(xiàng)目結(jié)構(gòu)更加清晰)

候選者:在處理公共邏輯時(shí),會(huì)使用模板方法模式進(jìn)行抽象,具體不同的邏輯會(huì)由不同的實(shí)現(xiàn)類處理(每種消息發(fā)送前都需要經(jīng)過(guò)文案校驗(yàn),所以可以把文案校驗(yàn)的邏輯寫在抽象類上)

候選者:代理模式手寫的機(jī)會(huì)比較少(因?yàn)轫?xiàng)目一般有Spring環(huán)境,直接用Spring 的AOP代理就好了)

候選者:我之前使用過(guò)AOP把「監(jiān)控客戶端」封裝以「注解」的方式進(jìn)行使用(不用以硬編碼的方式來(lái)進(jìn)行監(jiān)控,只要有注解就行了)

面試官那你能聊聊Spring常見(jiàn)的設(shè)計(jì)模式嘛?

候選者:比如,Spring IOC容器可以理解為應(yīng)用了「工廠模式」(通過(guò)ApplicationContext或者BeanFactory去獲取對(duì)象)

候選者:Spring的對(duì)象默認(rèn)都是單例的,所以肯定是用了「單例模式」(源碼里對(duì)單例的實(shí)現(xiàn)是用的DCL來(lái)實(shí)現(xiàn)單例)

候選者:Spring AOP的底層原理就是用了「代理模式」,實(shí)現(xiàn)可能是JDK 動(dòng)態(tài)代理,也可能是CGLIB動(dòng)態(tài)代理

候選者:Spring有很多地方都用了「模板方法模式」,比如事務(wù)管理器(AbstractPlatformTransactionManager),getTransaction定義了框架,其中很多都由子類實(shí)現(xiàn)

候選者:Spring的事件驅(qū)動(dòng)模型用了「觀察者模式」,具體實(shí)現(xiàn)就是ApplicationContextEvent、ApplicationListener

面試官:嗯,了解...

歡迎關(guān)注我的微信公眾號(hào)【Java3y】來(lái)聊聊Java面試,對(duì)線面試官系列持續(xù)更新中!

【對(duì)線面試官-移動(dòng)端】系列 一周兩篇持續(xù)更新中!

【對(duì)線面試官-電腦端】系列 一周兩篇持續(xù)更新中!

原創(chuàng)不易??!求三連!!

更多的文章可往:文章的目錄導(dǎo)航

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/125108.html

相關(guān)文章

  • 經(jīng)常被面官問(wèn)到的JavaScript數(shù)據(jù)類型知識(shí)你真的懂嗎?

    摘要:中的強(qiáng)制轉(zhuǎn)換規(guī)則面試官中強(qiáng)制類型轉(zhuǎn)換是一個(gè)非常易出現(xiàn)的點(diǎn),知道強(qiáng)制轉(zhuǎn)換時(shí)候的規(guī)則嗎注規(guī)則最好配合下面什么時(shí)候發(fā)生轉(zhuǎn)換使用這些規(guī)則看效果更佳。調(diào)用方法用來(lái)把對(duì)象轉(zhuǎn)換成原始類型的值數(shù)值字符串和布爾值。 前言 showImg(https://segmentfault.com/img/bVbu4Fb?w=940&h=400);之前面試了幾個(gè)開發(fā)者,他們確實(shí)做過(guò)不少項(xiàng)目,能力也是不錯(cuò)的,但是發(fā)現(xiàn)...

    codergarden 評(píng)論0 收藏0
  • 簡(jiǎn)歷上的項(xiàng)目經(jīng)歷怎么寫 ?這 3 條原則不可忽視 !

    摘要:正因?yàn)槿绱?,現(xiàn)在很多簡(jiǎn)歷上的項(xiàng)目經(jīng)歷的質(zhì)量都是參差不齊,同時(shí)有的項(xiàng)目經(jīng)歷又非常相似,面試官一眼就能知道你的項(xiàng)目到底是真是假。雖然以上三點(diǎn)原則不能包治百病,但是對(duì)很多同學(xué)來(lái)說(shuō)應(yīng)該是蠻有益處的。閱讀本文大概需要 5 分鐘。作者:黃小斜showImg(https://user-gold-cdn.xitu.io/2019/3/30/169cdb4bd2cac24c);?作為一個(gè)程序員,想必大家曾經(jīng)都...

    fobnn 評(píng)論0 收藏0
  • 一個(gè) 1年工作經(jīng)驗(yàn)的 PHP 程序員如何被面試官虐的?

    摘要:準(zhǔn)備不充分第一輪不過(guò)第一家,廣州琶洲一家環(huán)境超級(jí)好,福利也不錯(cuò),主營(yíng)美顏的公司,這也是我最感遺憾的一次面試機(jī)會(huì)。主要是第一輪面試第一個(gè)問(wèn)題的種數(shù)據(jù)類型,只答了一個(gè)。 前言 首先需要說(shuō)明的一點(diǎn),本人只是一個(gè)畢業(yè)一年,只有一年工作經(jīng)驗(yàn)的普通PHPer,能力有限,這篇文章只是將我這幾周來(lái)的感受和體驗(yàn)分享出來(lái),希望能給許多像我一樣,或者互聯(lián)網(wǎng)行業(yè)的新手帶來(lái)一些收獲,當(dāng)然哪里說(shuō)的不對(duì)或不足還是希...

    pcChao 評(píng)論0 收藏0
  • 朋友去大廠面試Python開發(fā)工程師,看完準(zhǔn)備過(guò)程傻眼

    摘要:要面試大廠,自己的知識(shí)儲(chǔ)備一定要非常豐富,若缺胳膊少腿,別說(shuō)在實(shí)際工作當(dāng)中,光是面試這一關(guān)就過(guò)不了。 金九銀十剛過(guò)去,有一部分朋友在這期間肯定經(jīng)歷了一番大廠面試的洗...

    felix0913 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<