0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

后端太卷?沖測(cè)開(kāi)去了!

小林coding ? 來(lái)源:小林coding ? 2023-09-25 17:00 ? 次閱讀

大家好,我是小林。

秋招進(jìn)展中,有的同學(xué)投大廠后端沒(méi)什么面試機(jī)會(huì),就會(huì)嘗試投測(cè)試開(kāi)發(fā)崗位。

測(cè)試開(kāi)發(fā)崗會(huì)伴隨開(kāi)發(fā)+測(cè)試類的工作,開(kāi)發(fā)主要是開(kāi)發(fā)一些測(cè)試工具來(lái)提高測(cè)試效率,也會(huì)和根據(jù)業(yè)務(wù)團(tuán)隊(duì)的需求開(kāi)發(fā)一些工具。

測(cè)試開(kāi)發(fā)的面試其實(shí)跟后端開(kāi)發(fā)差不多,其實(shí)被問(wèn)的問(wèn)題不會(huì)太細(xì)節(jié)或者太底層,除此后端的內(nèi)容之外,還會(huì)考察一些測(cè)試相關(guān)的內(nèi)容。

比如,如何設(shè)計(jì)測(cè)試用例、黑盒測(cè)試和白盒測(cè)試有什么區(qū)別、手動(dòng)測(cè)試和自動(dòng)測(cè)試有什么區(qū)別、api 測(cè)試工具怎么用等等,甚至也會(huì)問(wèn),為什么要選擇做測(cè)試開(kāi)發(fā)。所以這類問(wèn)題, 同學(xué)們?cè)谕哆f的時(shí)候,最好提前準(zhǔn)備下。

今天分享一位同學(xué)大廠測(cè)開(kāi)的秋招面試(面試已過(guò)),算法做了 2 題,面試問(wèn)基礎(chǔ)內(nèi)容比較多,難度確實(shí)會(huì)比后端減少了很多。

面試記錄

1. 項(xiàng)目問(wèn)題:rabbitmq進(jìn)行了異步解耦,說(shuō)說(shuō)看?

回答:用作消息通知類似的

面試官:那你沒(méi)必要用消息隊(duì)列,異步任務(wù)就行了,感覺(jué)是為了學(xué)做的這個(gè)需求,感覺(jué)你喜歡把簡(jiǎn)單的東西復(fù)雜化(心涼一半)

小林補(bǔ)充

可以說(shuō)一下為什么要用到mq,比如同樣是掛了的情況,消息隊(duì)列有什么異常處理機(jī)制,確保消息不丟失這方面提到,當(dāng)然也是要看你的業(yè)務(wù)是否需要確保任務(wù)不丟失。

2. SpringBoot自動(dòng)裝配介紹一下。

回答:講了一下原理,說(shuō)了實(shí)現(xiàn)了一個(gè)starter,封裝了一些日志類,通用的類

3. MySQL查詢緩慢,排查過(guò)程?

回答:explain看看有沒(méi)有觸發(fā)索引,有慢查詢?nèi)罩镜脑捒梢钥纯慈罩?/p>

4. explain主要關(guān)注哪些字段?

回答:覆蓋索引 記得有個(gè)Condition index,還有一個(gè)字段是索引長(zhǎng)度的記得(全靠回憶小林coding)

小林補(bǔ)充:

需要重點(diǎn)關(guān)注 type 和 extra 字段。

03878fb2-5b7e-11ee-939d-92fbcf53809c.png

對(duì)于執(zhí)行計(jì)劃,參數(shù)有:

possible_keys 字段表示可能用到的索引;

key 字段表示實(shí)際用的索引,如果這一項(xiàng)為 NULL,說(shuō)明沒(méi)有使用索引;

key_len 表示索引的長(zhǎng)度;

rows 表示掃描的數(shù)據(jù)行數(shù)。

type 表示數(shù)據(jù)掃描類型,我們需要重點(diǎn)看這個(gè)。

type 字段就是描述了找到所需數(shù)據(jù)時(shí)使用的掃描方式是什么,常見(jiàn)掃描類型的執(zhí)行效率從低到高的順序?yàn)椋?/p>

All(全表掃描);

index(全索引掃描);

range(索引范圍掃描);

ref(非唯一索引掃描);

eq_ref(唯一索引掃描);

const(結(jié)果只有一條的主鍵或唯一索引掃描)。

在這些情況里,all 是最壞的情況,因?yàn)椴捎昧巳頀呙璧姆绞健ndex 和 all 差不多,只不過(guò) index 對(duì)索引表進(jìn)行全掃描,這樣做的好處是不再需要對(duì)數(shù)據(jù)進(jìn)行排序,但是開(kāi)銷依然很大。所以,要盡量避免全表掃描和全索引掃描。

range 表示采用了索引范圍掃描,一般在 where 子句中使用 < 、>、in、between 等關(guān)鍵詞,只檢索給定范圍的行,屬于范圍查找。從這一級(jí)別開(kāi)始,索引的作用會(huì)越來(lái)越明顯,因此我們需要盡量讓 SQL 查詢可以使用到 range 這一級(jí)別及以上的 type 訪問(wèn)方式。

ref 類型表示采用了非唯一索引,或者是唯一索引的非唯一性前綴,返回?cái)?shù)據(jù)返回可能是多條。因?yàn)殡m然使用了索引,但該索引列的值并不唯一,有重復(fù)。這樣即使使用索引快速查找到了第一條數(shù)據(jù),仍然不能停止,要進(jìn)行目標(biāo)值附近的小范圍掃描。但它的好處是它并不需要掃全表,因?yàn)樗饕怯行虻模幢阌兄貜?fù)值,也是在一個(gè)非常小的范圍內(nèi)掃描。

eq_ref 類型是使用主鍵或唯一索引時(shí)產(chǎn)生的訪問(wèn)方式,通常使用在多表聯(lián)查中。比如,對(duì)兩張表進(jìn)行聯(lián)查,關(guān)聯(lián)條件是兩張表的 user_id 相等,且 user_id 是唯一索引,那么使用 EXPLAIN 進(jìn)行執(zhí)行計(jì)劃查看的時(shí)候,type 就會(huì)顯示 eq_ref。

const 類型表示使用了主鍵或者唯一索引與常量值進(jìn)行比較,比如 select name from product where id=1。

需要說(shuō)明的是 const 類型和 eq_ref 都使用了主鍵或唯一索引,不過(guò)這兩個(gè)類型有所區(qū)別,const 是與常量進(jìn)行比較,查詢效率會(huì)更快,而 eq_ref 通常用于多表聯(lián)查中。

除了關(guān)注 type,我們也要關(guān)注 extra 顯示的結(jié)果。

這里說(shuō)幾個(gè)重要的參考指標(biāo):

Using filesort :當(dāng)查詢語(yǔ)句中包含 group by 操作,而且無(wú)法利用索引完成排序操作的時(shí)候, 這時(shí)不得不選擇相應(yīng)的排序算法進(jìn)行,甚至可能會(huì)通過(guò)文件排序,效率是很低的,所以要避免這種問(wèn)題的出現(xiàn)。

Using temporary:使了用臨時(shí)表保存中間結(jié)果,MySQL 在對(duì)查詢結(jié)果排序時(shí)使用臨時(shí)表,常見(jiàn)于排序 order by 和分組查詢 group by。效率低,要避免這種問(wèn)題的出現(xiàn)。

Using index:所需數(shù)據(jù)只需在索引即可全部獲得,不須要再到表中取數(shù)據(jù),也就是使用了覆蓋索引,避免了回表操作,效率不錯(cuò)。

5. 索引失效有哪些場(chǎng)景

回答:%x,函數(shù),Or,表本來(lái)就不大。

小林補(bǔ)充:

當(dāng)我們使用左或者左右模糊匹配的時(shí)候,也就是 like %xx 或者 like %xx%這兩種方式都會(huì)造成索引失效;

當(dāng)我們?cè)诓樵儣l件中對(duì)索引列使用函數(shù),就會(huì)導(dǎo)致索引失效。

當(dāng)我們?cè)诓樵儣l件中對(duì)索引列進(jìn)行表達(dá)式計(jì)算,也是無(wú)法走索引的。

MySQL 在遇到字符串和數(shù)字比較的時(shí)候,會(huì)自動(dòng)把字符串轉(zhuǎn)為數(shù)字,然后再進(jìn)行比較。如果字符串是索引列,而條件語(yǔ)句中的輸入?yún)?shù)是數(shù)字的話,那么索引列會(huì)發(fā)生隱式類型轉(zhuǎn)換,由于隱式類型轉(zhuǎn)換是通過(guò) CAST 函數(shù)實(shí)現(xiàn)的,等同于對(duì)索引列使用了函數(shù),所以就會(huì)導(dǎo)致索引失效。

聯(lián)合索引要能正確使用需要遵循最左匹配原則,也就是按照最左優(yōu)先的方式進(jìn)行索引的匹配,否則就會(huì)導(dǎo)致索引失效。

在 WHERE 子句中,如果在 OR 前的條件列是索引列,而在 OR 后的條件列不是索引列,那么索引會(huì)失效。

6. 常見(jiàn)索引哪幾類?

回答:非聚簇和聚簇,主鍵索引(淦,記得小林coding里有分,一時(shí)想不起來(lái)了)

小林補(bǔ)充

按「數(shù)據(jù)結(jié)構(gòu)」分類:B+tree索引、Hash索引、Full-text索引。

按「物理存儲(chǔ)」分類:聚簇索引(主鍵索引)、二級(jí)索引(輔助索引)。

按「字段特性」分類:主鍵索引、唯一索引、普通索引、前綴索引。

按「字段個(gè)數(shù)」分類:?jiǎn)瘟兴饕⒙?lián)合索引。

7. 你知道什么是唯一索引嗎?

回答:Unique

追問(wèn):一般干什么用的?只知道是unique不知道是干啥用的是吧?

小林補(bǔ)充

唯一索引主要是為了確保字段的唯一性,通常會(huì)對(duì)身份證號(hào),學(xué)生號(hào)之類具有唯一性約束的字段建立唯一索引。唯一索引的更新性能沒(méi)有普通索引高,因?yàn)闆](méi)辦法利用 changebuffer 的優(yōu)化。

8. TCP和UDP區(qū)別

回答:

TCP面向連接,UDP不在話消息是否到達(dá),QUIC基于UDP實(shí)現(xiàn)了類似TCP的可靠傳輸

TCP建立連接要三次握手 四次揮手?jǐn)嚅_(kāi)連接,擁塞控制,阻塞窗口

小林補(bǔ)充

連接方式:TCP是一種面向連接的協(xié)議,通信前需要建立連接。UDP是無(wú)連接的,發(fā)送數(shù)據(jù)前無(wú)需建立連接。

可靠性:TCP提供了數(shù)據(jù)包的順序、錯(cuò)誤檢查和重發(fā)機(jī)制,因此是一種可靠的協(xié)議。UDP則不保證數(shù)據(jù)包的順序或是否會(huì)到達(dá),所以是不可靠的。

速度:由于TCP的這些額外特性,它通常比UDP慢。UDP由于沒(méi)有錯(cuò)誤檢查和重發(fā)機(jī)制,因此速度更快。

頭部大?。篢CP的頭部大小為20-60字節(jié),而UDP的頭部大小為8字節(jié)。

9. TCP上層協(xié)議有哪些?

回答:Http https 不記得了

小林補(bǔ)充

FTP(文件傳輸協(xié)議)、SMTP(簡(jiǎn)單郵件傳輸協(xié)議)

10. DNS是嗎?

回答:是吧

面試官:這個(gè)可能不太對(duì) 你下去再看看吧(寄)

小林補(bǔ)充

DNS(域名系統(tǒng))通?;赨DP(用戶數(shù)據(jù)報(bào)協(xié)議)而非TCP來(lái)運(yùn)作,因?yàn)閁DP對(duì)于DNS的快速請(qǐng)求-應(yīng)答通信模式更為高效。然而,在某些情況下,如當(dāng)DNS響應(yīng)的大小超過(guò)UDP的最大包大?。?12字節(jié))或進(jìn)行區(qū)域傳輸時(shí),DNS會(huì)使用TCP。所以,雖然DNS主要使用UDP,但在特定情況下也會(huì)使用TCP。

11. 進(jìn)程和線程的區(qū)別?

回答:

cpu調(diào)度,內(nèi)存調(diào)度

進(jìn)程獨(dú)立,線程基于進(jìn)程

切換損耗

12. 死鎖是怎么發(fā)生的?

回答:四個(gè)必要條件和銀行家算法(上課學(xué)過(guò))

小林補(bǔ)充

死鎖問(wèn)題的產(chǎn)生是由兩個(gè)或者以上線程并行執(zhí)行的時(shí)候,爭(zhēng)奪資源而互相等待造成的。

死鎖只有同時(shí)滿足互斥、持有并等待、不可剝奪、環(huán)路等待這四個(gè)條件的時(shí)候才會(huì)發(fā)生。

互斥條件

互斥條件是指多個(gè)線程不能同時(shí)使用同一個(gè)資源。

比如下圖,如果線程 A 已經(jīng)持有的資源,不能再同時(shí)被線程 B 持有,如果線程 B 請(qǐng)求獲取線程 A 已經(jīng)占用的資源,那線程 B 只能等待,直到線程 A 釋放了資源。

039be458-5b7e-11ee-939d-92fbcf53809c.png

img

持有并等待條件

持有并等待條件是指,當(dāng)線程 A 已經(jīng)持有了資源 1,又想申請(qǐng)資源 2,而資源 2 已經(jīng)被線程 C 持有了,所以線程 A 就會(huì)處于等待狀態(tài),但是線程 A 在等待資源 2 的同時(shí)并不會(huì)釋放自己已經(jīng)持有的資源 1。

03ad61c4-5b7e-11ee-939d-92fbcf53809c.png

img

不可剝奪條件

不可剝奪條件是指,當(dāng)線程已經(jīng)持有了資源 ,在自己使用完之前不能被其他線程獲取,線程 B 如果也想使用此資源,則只能在線程 A 使用完并釋放后才能獲取。

03bb86e6-5b7e-11ee-939d-92fbcf53809c.png

img

環(huán)路等待條件

環(huán)路等待條件指的是,在死鎖發(fā)生的時(shí)候,兩個(gè)線程獲取資源的順序構(gòu)成了環(huán)形鏈。

比如,線程 A 已經(jīng)持有資源 2,而想請(qǐng)求資源 1, 線程 B 已經(jīng)獲取了資源 1,而想請(qǐng)求資源 2,這就形成資源請(qǐng)求等待的環(huán)形圖。

03c3ec6e-5b7e-11ee-939d-92fbcf53809c.png

img

所以要避免死鎖問(wèn)題,就是要破壞其中一個(gè)條件即可,最常用的方法就是使用資源有序分配法來(lái)破壞環(huán)路等待條件。

13. os的內(nèi)存管理有分頁(yè)和分段了解嗎?

回答:

分段是邏輯方面的,比如函數(shù)會(huì)放在一個(gè)段,提高復(fù)用性

還能多想一點(diǎn)嗎 虛擬內(nèi)存是分頁(yè)還是分段

分頁(yè),記得一個(gè)頁(yè)面置換

14. 頁(yè)面置換有哪些算法?

回答:純靠上課印象了 (LRU、LFU、時(shí)鐘

小林補(bǔ)充

頁(yè)面置換算法的功能是,當(dāng)出現(xiàn)缺頁(yè)異常,需調(diào)入新頁(yè)面而內(nèi)存已滿時(shí),選擇被置換的物理頁(yè)面,也就是說(shuō)選擇一個(gè)物理頁(yè)面換出到磁盤(pán),然后把需要訪問(wèn)的頁(yè)面換入到物理頁(yè)。

那其算法目標(biāo)則是,盡可能減少頁(yè)面的換入換出的次數(shù),常見(jiàn)的頁(yè)面置換算法有如下幾種:

最佳頁(yè)面置換算法(OPT)

先進(jìn)先出置換算法(FIFO)

最近最久未使用的置換算法(LRU)

時(shí)鐘頁(yè)面置換算法(Lock)

最不常用置換算法(LFU)

最佳頁(yè)面置換算法

最佳頁(yè)面置換算法基本思路是,置換在「未來(lái)」最長(zhǎng)時(shí)間不訪問(wèn)的頁(yè)面。

所以,該算法實(shí)現(xiàn)需要計(jì)算內(nèi)存中每個(gè)邏輯頁(yè)面的「下一次」訪問(wèn)時(shí)間,然后比較,選擇未來(lái)最長(zhǎng)時(shí)間不訪問(wèn)的頁(yè)面。

我們舉個(gè)例子,假設(shè)一開(kāi)始有 3 個(gè)空閑的物理頁(yè),然后有請(qǐng)求的頁(yè)面序列,那它的置換過(guò)程如下圖:

03d4ce3a-5b7e-11ee-939d-92fbcf53809c.png

最佳頁(yè)面置換算法

在這個(gè)請(qǐng)求的頁(yè)面序列中,缺頁(yè)共發(fā)生了 7 次(空閑頁(yè)換入 3 次 + 最優(yōu)頁(yè)面置換 4 次),頁(yè)面置換共發(fā)生了 4 次。

這很理想,但是實(shí)際系統(tǒng)中無(wú)法實(shí)現(xiàn),因?yàn)槌绦蛟L問(wèn)頁(yè)面時(shí)是動(dòng)態(tài)的,我們是無(wú)法預(yù)知每個(gè)頁(yè)面在「下一次」訪問(wèn)前的等待時(shí)間。

所以,最佳頁(yè)面置換算法作用是為了衡量你的算法的效率,你的算法效率越接近該算法的效率,那么說(shuō)明你的算法是高效的。

先進(jìn)先出置換算法

既然我們無(wú)法預(yù)知頁(yè)面在下一次訪問(wèn)前所需的等待時(shí)間,那我們可以選擇在內(nèi)存駐留時(shí)間很長(zhǎng)的頁(yè)面進(jìn)行中置換,這個(gè)就是「先進(jìn)先出置換」算法的思想。

還是以前面的請(qǐng)求的頁(yè)面序列作為例子,假設(shè)使用先進(jìn)先出置換算法,則過(guò)程如下圖:

03ddbdce-5b7e-11ee-939d-92fbcf53809c.png

先進(jìn)先出置換算法

在這個(gè)請(qǐng)求的頁(yè)面序列中,缺頁(yè)共發(fā)生了 10 次,頁(yè)面置換共發(fā)生了 7 次,跟最佳頁(yè)面置換算法比較起來(lái),性能明顯差了很多。

最近最久未使用的置換算法

最近最久未使用(LRU)的置換算法的基本思路是,發(fā)生缺頁(yè)時(shí),選擇最長(zhǎng)時(shí)間沒(méi)有被訪問(wèn)的頁(yè)面進(jìn)行置換,也就是說(shuō),該算法假設(shè)已經(jīng)很久沒(méi)有使用的頁(yè)面很有可能在未來(lái)較長(zhǎng)的一段時(shí)間內(nèi)仍然不會(huì)被使用。

這種算法近似最優(yōu)置換算法,最優(yōu)置換算法是通過(guò)「未來(lái)」的使用情況來(lái)推測(cè)要淘汰的頁(yè)面,而 LRU 則是通過(guò)「歷史」的使用情況來(lái)推測(cè)要淘汰的頁(yè)面。

還是以前面的請(qǐng)求的頁(yè)面序列作為例子,假設(shè)使用最近最久未使用的置換算法,則過(guò)程如下圖:

03ed9b0e-5b7e-11ee-939d-92fbcf53809c.png

最近最久未使用的置換算法

在這個(gè)請(qǐng)求的頁(yè)面序列中,缺頁(yè)共發(fā)生了 9 次,頁(yè)面置換共發(fā)生了 6 次,跟先進(jìn)先出置換算法比較起來(lái),性能提高了一些。

雖然 LRU 在理論上是可以實(shí)現(xiàn)的,但代價(jià)很高。為了完全實(shí)現(xiàn) LRU,需要在內(nèi)存中維護(hù)一個(gè)所有頁(yè)面的鏈表,最近最多使用的頁(yè)面在表頭,最近最少使用的頁(yè)面在表尾。

困難的是,在每次訪問(wèn)內(nèi)存時(shí)都必須要更新「整個(gè)鏈表」。在鏈表中找到一個(gè)頁(yè)面,刪除它,然后把它移動(dòng)到表頭是一個(gè)非常費(fèi)時(shí)的操作。

所以,LRU 雖然看上去不錯(cuò),但是由于開(kāi)銷比較大,實(shí)際應(yīng)用中比較少使用。

時(shí)鐘頁(yè)面置換算法

那有沒(méi)有一種即能優(yōu)化置換的次數(shù),也能方便實(shí)現(xiàn)的算法呢?

時(shí)鐘頁(yè)面置換算法就可以兩者兼得,它跟 LRU 近似,又是對(duì) FIFO 的一種改進(jìn)。

該算法的思路是,把所有的頁(yè)面都保存在一個(gè)類似鐘面的「環(huán)形鏈表」中,一個(gè)表針指向最老的頁(yè)面。

當(dāng)發(fā)生缺頁(yè)中斷時(shí),算法首先檢查表針指向的頁(yè)面:

如果它的訪問(wèn)位位是 0 就淘汰該頁(yè)面,并把新的頁(yè)面插入這個(gè)位置,然后把表針前移一個(gè)位置;

如果訪問(wèn)位是 1 就清除訪問(wèn)位,并把表針前移一個(gè)位置,重復(fù)這個(gè)過(guò)程直到找到了一個(gè)訪問(wèn)位為 0 的頁(yè)面為止;

我畫(huà)了一副時(shí)鐘頁(yè)面置換算法的工作流程圖,你可以在下方看到:

03fabed8-5b7e-11ee-939d-92fbcf53809c.png

時(shí)鐘頁(yè)面置換算法

了解了這個(gè)算法的工作方式,就明白為什么它被稱為時(shí)鐘(Clock)算法了。

最不常用算法

最不常用(LFU)算法,這名字聽(tīng)起來(lái)很調(diào)皮,但是它的意思不是指這個(gè)算法不常用,而是當(dāng)發(fā)生缺頁(yè)中斷時(shí),選擇「訪問(wèn)次數(shù)」最少的那個(gè)頁(yè)面,并將其淘汰。

它的實(shí)現(xiàn)方式是,對(duì)每個(gè)頁(yè)面設(shè)置一個(gè)「訪問(wèn)計(jì)數(shù)器」,每當(dāng)一個(gè)頁(yè)面被訪問(wèn)時(shí),該頁(yè)面的訪問(wèn)計(jì)數(shù)器就累加 1。在發(fā)生缺頁(yè)中斷時(shí),淘汰計(jì)數(shù)器值最小的那個(gè)頁(yè)面。

看起來(lái)很簡(jiǎn)單,每個(gè)頁(yè)面加一個(gè)計(jì)數(shù)器就可以實(shí)現(xiàn)了,但是在操作系統(tǒng)中實(shí)現(xiàn)的時(shí)候,我們需要考慮效率和硬件成本的。

要增加一個(gè)計(jì)數(shù)器來(lái)實(shí)現(xiàn),這個(gè)硬件成本是比較高的,另外如果要對(duì)這個(gè)計(jì)數(shù)器查找哪個(gè)頁(yè)面訪問(wèn)次數(shù)最小,查找鏈表本身,如果鏈表長(zhǎng)度很大,是非常耗時(shí)的,效率不高。

但還有個(gè)問(wèn)題,LFU 算法只考慮了頻率問(wèn)題,沒(méi)考慮時(shí)間的問(wèn)題,比如有些頁(yè)面在過(guò)去時(shí)間里訪問(wèn)的頻率很高,但是現(xiàn)在已經(jīng)沒(méi)有訪問(wèn)了,而當(dāng)前頻繁訪問(wèn)的頁(yè)面由于沒(méi)有這些頁(yè)面訪問(wèn)的次數(shù)高,在發(fā)生缺頁(yè)中斷時(shí),就會(huì)可能會(huì)誤傷當(dāng)前剛開(kāi)始頻繁訪問(wèn),但訪問(wèn)次數(shù)還不高的頁(yè)面。

那這個(gè)問(wèn)題的解決的辦法還是有的,可以定期減少訪問(wèn)的次數(shù),比如當(dāng)發(fā)生時(shí)間中斷時(shí),把過(guò)去時(shí)間訪問(wèn)的頁(yè)面的訪問(wèn)次數(shù)除以 2,也就說(shuō),隨著時(shí)間的流失,以前的高訪問(wèn)次數(shù)的頁(yè)面會(huì)慢慢減少,相當(dāng)于加大了被置換的概率。

算法(35min+):

數(shù)組中和最接近目標(biāo)值的三個(gè)數(shù)

數(shù)組最大的組合數(shù){3,32,9,912} 組合成9912332

反問(wèn):

評(píng)價(jià)以及哪些方面需要學(xué)習(xí)?

測(cè)開(kāi)崗干啥?

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4620

    瀏覽量

    93044
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2256

    瀏覽量

    94699
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    417

    瀏覽量

    25978

原文標(biāo)題:后端太卷?沖測(cè)開(kāi)去了!

文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Buck輸出過(guò)產(chǎn)生原因及改善措施

    過(guò)是指一個(gè)超過(guò)設(shè)定電壓的峰值電壓, 一般以尖峰脈沖形式呈現(xiàn)。在使用電源產(chǎn)品過(guò)程中,輸入端開(kāi)關(guān)接觸不良和輸 入端熱插拔上電都可能會(huì)產(chǎn)生輸出過(guò),若是輸出過(guò)超過(guò)后端設(shè)備的極限耐壓, 有
    的頭像 發(fā)表于 11-07 09:02 ?4353次閱讀

    深圳對(duì)打孔機(jī)系統(tǒng),CCD雙頭打孔提高生產(chǎn)效率

    控制傳動(dòng)部分動(dòng)作,使頭在平面上的x軸,y軸走位,完成走位動(dòng)作之后氣動(dòng)部分開(kāi)始工作,電磁閥控制氣缸進(jìn)行沖孔動(dòng)作,完成自動(dòng)打孔,整個(gè)動(dòng)作一氣呵成,快速,準(zhǔn)確,效率高,因此,被相關(guān)產(chǎn)業(yè)廣泛應(yīng)用。然而現(xiàn)有
    發(fā)表于 05-08 10:17

    什么是過(guò)?怎么解決過(guò)?

    什么是過(guò)?怎么解決過(guò)?
    發(fā)表于 06-18 08:37

    深圳對(duì)對(duì)位系統(tǒng)怎么樣呢?

    深圳對(duì)印刷機(jī)是特印設(shè)備中的一個(gè)種類,廣泛應(yīng)用于工業(yè)用品及塑膠、玻璃、金屬片、陶瓷片、電子板等等。絲印原理是通過(guò)絲(網(wǎng))印刷的技術(shù),將特定圖案印刷到既定材料表面?,F(xiàn)已成為表面特種印刷或裝飾的一種
    發(fā)表于 09-08 15:59

    裁工藝與裁模設(shè)計(jì)

    裁工藝與裁模設(shè)計(jì):裁是最基本的沖壓工序。本章是本課程的重點(diǎn)章。在分析裁變形過(guò)程及裁件質(zhì)量影響因素的基礎(chǔ)上,介紹
    發(fā)表于 10-17 15:04 ?0次下載

    計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) (含第1,第2,第3 基本算法)

    計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) (含第1,第2,第3 基本算法)是國(guó)內(nèi)外業(yè)界廣泛關(guān)注的7本《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》第1的最新版,以基本的程序設(shè)計(jì)
    發(fā)表于 10-24 13:50 ?0次下載
    計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) (含第1<b class='flag-5'>卷</b>,第2<b class='flag-5'>卷</b>,第3<b class='flag-5'>卷</b> 基本算法)

    后端系統(tǒng),后端系統(tǒng)是什么意思

    后端系統(tǒng),后端系統(tǒng)是什么意思 “后端系統(tǒng)”從寬泛的角度上講是指向用戶提供數(shù)據(jù)的服務(wù)器、超級(jí)服務(wù)器、群集系統(tǒng)、中程系統(tǒng)以及
    發(fā)表于 04-06 17:21 ?3685次閱讀

    技術(shù)曝光:TRADIM的對(duì)液晶面板構(gòu)件

    技術(shù)曝光:TRADIM的對(duì)液晶面板構(gòu)件    日本新一代移動(dòng)顯示材料技術(shù)研究組合(TRADIM)在利用薄膜底板上形成的液晶面板構(gòu)件,以對(duì)方式連續(xù)組裝TFT液晶面板的
    發(fā)表于 04-24 13:54 ?1253次閱讀
    技術(shù)曝光:TRADIM的<b class='flag-5'>卷</b>對(duì)<b class='flag-5'>卷</b>液晶面板構(gòu)件

    后端服務(wù)器如何實(shí)現(xiàn)把數(shù)據(jù)返回給前端?

    人員瞧不起前端人員,那現(xiàn)在后端人員要重新認(rèn)識(shí)一下前端,前端已經(jīng)很成體系了)。 一般系統(tǒng)的大致整體架構(gòu)圖如下: 需要說(shuō)明的是,有些小伙伴會(huì)回復(fù)說(shuō),這個(gè)架構(gòu)簡(jiǎn)單了吧,low了,什么網(wǎng)關(guān)啊,緩存啊,消息中間件啊,都
    的頭像 發(fā)表于 04-12 10:39 ?2.3w次閱讀
    <b class='flag-5'>后端</b>服務(wù)器如何實(shí)現(xiàn)把數(shù)據(jù)返回給前端?

    nodejs 后端技術(shù)介紹

    筆者最開(kāi)始學(xué)的后端技術(shù)是 python 的 Django 框架,由于很久沒(méi)有使用過(guò) python 語(yǔ)法,便想著了解一些 nodejs 的后端技術(shù)。下面將最近的收獲總結(jié)一下。
    的頭像 發(fā)表于 05-05 16:41 ?1131次閱讀

    針形狀對(duì)芯質(zhì)量的影響

    鋰電池芯的卷繞過(guò)程一般是先用兩針夾緊兩層隔膜進(jìn)行預(yù),然后依次送入正極片或負(fù)極片,極片分別夾在兩層隔膜之間進(jìn)行卷繞。
    的頭像 發(fā)表于 06-01 15:05 ?1711次閱讀
    <b class='flag-5'>卷</b>針形狀對(duì)<b class='flag-5'>卷</b>芯質(zhì)量的影響

    后端有點(diǎn)客戶端去了!

    如果收到新數(shù)據(jù)的 ACK 后,把 cwnd 設(shè)置為第一步中的 ssthresh 的值,原因是該 ACK 確認(rèn)了新的數(shù)據(jù),說(shuō)明從 duplicated ACK 時(shí)的數(shù)據(jù)都已收到,該恢復(fù)過(guò)程已經(jīng)結(jié)束,可以回到恢復(fù)之前的狀態(tài)了,也即再次進(jìn)入擁塞避免狀態(tài);
    的頭像 發(fā)表于 11-10 17:19 ?441次閱讀
    <b class='flag-5'>后端</b>有點(diǎn)<b class='flag-5'>卷</b>?<b class='flag-5'>沖</b>客戶端<b class='flag-5'>去了</b>!

    springboot前后端交互流程

    Boot 進(jìn)行開(kāi)發(fā)時(shí),前后端交互是一個(gè)非常重要的部分,本文將詳細(xì)介紹 Spring Boot 前后端交互的流程。 前后端交互的基本原理 在前后端交互的過(guò)程中,前端負(fù)責(zé)向
    的頭像 發(fā)表于 11-22 16:00 ?2171次閱讀

    輸出過(guò)原因及改善措施

    過(guò)是指一個(gè)超過(guò)設(shè)定電壓的峰值電壓,一般以尖峰脈沖形式呈現(xiàn)。在使用電源產(chǎn)品過(guò)程中,輸入端開(kāi)關(guān)接觸不良和輸入端熱插拔上電都可能會(huì)產(chǎn)生輸出過(guò),若是輸出過(guò)超過(guò)后端設(shè)備的極限耐壓,有可能會(huì)
    發(fā)表于 01-23 12:32 ?3284次閱讀
    輸出過(guò)<b class='flag-5'>沖</b>原因及改善措施

    模擬后端是什么意思

    模擬后端,在軟件開(kāi)發(fā)和測(cè)試領(lǐng)域,通常是指使用工具或技術(shù)來(lái)模擬實(shí)際后端服務(wù)的行為。這樣做的主要目的是在項(xiàng)目開(kāi)發(fā)過(guò)程中,當(dāng)后端服務(wù)還未就緒或暫時(shí)無(wú)法訪問(wèn)時(shí),前端或其他依賴后端的系統(tǒng)能夠繼續(xù)
    的頭像 發(fā)表于 03-15 15:58 ?697次閱讀