在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

后端太卷?沖測開去了!

小林coding ? 來源:小林coding ? 2023-09-25 17:00 ? 次閱讀

大家好,我是小林。

秋招進展中,有的同學投大廠后端沒什么面試機會,就會嘗試投測試開發崗位。

測試開發崗會伴隨開發+測試類的工作,開發主要是開發一些測試工具來提高測試效率,也會和根據業務團隊的需求開發一些工具。

測試開發的面試其實跟后端開發差不多,其實被問的問題不會太細節或者太底層,除此后端的內容之外,還會考察一些測試相關的內容。

比如,如何設計測試用例、黑盒測試和白盒測試有什么區別、手動測試和自動測試有什么區別、api 測試工具怎么用等等,甚至也會問,為什么要選擇做測試開發。所以這類問題, 同學們在投遞的時候,最好提前準備下。

今天分享一位同學大廠測開的秋招面試(面試已過),算法做了 2 題,面試問基礎內容比較多,難度確實會比后端減少了很多。

面試記錄

1. 項目問題:rabbitmq進行了異步解耦,說說看?

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

面試官:那你沒必要用消息隊列,異步任務就行了,感覺是為了學做的這個需求,感覺你喜歡把簡單的東西復雜化(心涼一半)

小林補充

可以說一下為什么要用到mq,比如同樣是掛了的情況,消息隊列有什么異常處理機制,確保消息不丟失這方面提到,當然也是要看你的業務是否需要確保任務不丟失。

2. SpringBoot自動裝配介紹一下。

回答:講了一下原理,說了實現了一個starter,封裝了一些日志類,通用的類

3. MySQL查詢緩慢,排查過程?

回答:explain看看有沒有觸發索引,有慢查詢日志的話可以看看日志

4. explain主要關注哪些字段?

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

小林補充:

需要重點關注 type 和 extra 字段。

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

對于執行計劃,參數有:

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

key 字段表示實際用的索引,如果這一項為 NULL,說明沒有使用索引;

key_len 表示索引的長度;

rows 表示掃描的數據行數。

type 表示數據掃描類型,我們需要重點看這個。

type 字段就是描述了找到所需數據時使用的掃描方式是什么,常見掃描類型的執行效率從低到高的順序為:

All(全表掃描);

index(全索引掃描);

range(索引范圍掃描);

ref(非唯一索引掃描);

eq_ref(唯一索引掃描);

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

在這些情況里,all 是最壞的情況,因為采用了全表掃描的方式。index 和 all 差不多,只不過 index 對索引表進行全掃描,這樣做的好處是不再需要對數據進行排序,但是開銷依然很大。所以,要盡量避免全表掃描和全索引掃描。

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

ref 類型表示采用了非唯一索引,或者是唯一索引的非唯一性前綴,返回數據返回可能是多條。因為雖然使用了索引,但該索引列的值并不唯一,有重復。這樣即使使用索引快速查找到了第一條數據,仍然不能停止,要進行目標值附近的小范圍掃描。但它的好處是它并不需要掃全表,因為索引是有序的,即便有重復值,也是在一個非常小的范圍內掃描。

eq_ref 類型是使用主鍵或唯一索引時產生的訪問方式,通常使用在多表聯查中。比如,對兩張表進行聯查,關聯條件是兩張表的 user_id 相等,且 user_id 是唯一索引,那么使用 EXPLAIN 進行執行計劃查看的時候,type 就會顯示 eq_ref。

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

需要說明的是 const 類型和 eq_ref 都使用了主鍵或唯一索引,不過這兩個類型有所區別,const 是與常量進行比較,查詢效率會更快,而 eq_ref 通常用于多表聯查中。

除了關注 type,我們也要關注 extra 顯示的結果。

這里說幾個重要的參考指標:

Using filesort :當查詢語句中包含 group by 操作,而且無法利用索引完成排序操作的時候, 這時不得不選擇相應的排序算法進行,甚至可能會通過文件排序,效率是很低的,所以要避免這種問題的出現。

Using temporary:使了用臨時表保存中間結果,MySQL 在對查詢結果排序時使用臨時表,常見于排序 order by 和分組查詢 group by。效率低,要避免這種問題的出現。

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

5. 索引失效有哪些場景

回答:%x,函數,Or,表本來就不大。

小林補充:

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

當我們在查詢條件中對索引列使用函數,就會導致索引失效。

當我們在查詢條件中對索引列進行表達式計算,也是無法走索引的。

MySQL 在遇到字符串和數字比較的時候,會自動把字符串轉為數字,然后再進行比較。如果字符串是索引列,而條件語句中的輸入參數是數字的話,那么索引列會發生隱式類型轉換,由于隱式類型轉換是通過 CAST 函數實現的,等同于對索引列使用了函數,所以就會導致索引失效。

聯合索引要能正確使用需要遵循最左匹配原則,也就是按照最左優先的方式進行索引的匹配,否則就會導致索引失效。

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

6. 常見索引哪幾類?

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

小林補充

按「數據結構」分類:B+tree索引、Hash索引、Full-text索引。

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

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

按「字段個數」分類:單列索引、聯合索引。

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

回答:Unique

追問:一般干什么用的?只知道是unique不知道是干啥用的是吧?

小林補充

唯一索引主要是為了確保字段的唯一性,通常會對身份證號,學生號之類具有唯一性約束的字段建立唯一索引。唯一索引的更新性能沒有普通索引高,因為沒辦法利用 changebuffer 的優化。

8. TCP和UDP區別

回答:

TCP面向連接,UDP不在話消息是否到達,QUIC基于UDP實現了類似TCP的可靠傳輸

TCP建立連接要三次握手 四次揮手斷開連接,擁塞控制,阻塞窗口

小林補充

連接方式:TCP是一種面向連接的協議,通信前需要建立連接。UDP是無連接的,發送數據前無需建立連接。

可靠性:TCP提供了數據包的順序、錯誤檢查和重發機制,因此是一種可靠的協議。UDP則不保證數據包的順序或是否會到達,所以是不可靠的。

速度:由于TCP的這些額外特性,它通常比UDP慢。UDP由于沒有錯誤檢查和重發機制,因此速度更快。

頭部大小:TCP的頭部大小為20-60字節,而UDP的頭部大小為8字節。

9. TCP上層協議有哪些?

回答:Http https 不記得了

小林補充

FTP(文件傳輸協議)、SMTP(簡單郵件傳輸協議)

10. DNS是嗎?

回答:是吧

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

小林補充

DNS(域名系統)通常基于UDP(用戶數據報協議)而非TCP來運作,因為UDP對于DNS的快速請求-應答通信模式更為高效。然而,在某些情況下,如當DNS響應的大小超過UDP的最大包大小(512字節)或進行區域傳輸時,DNS會使用TCP。所以,雖然DNS主要使用UDP,但在特定情況下也會使用TCP。

11. 進程和線程的區別?

回答:

cpu調度,內存調度

進程獨立,線程基于進程

切換損耗

12. 死鎖是怎么發生的?

回答:四個必要條件和銀行家算法(上課學過)

小林補充

死鎖問題的產生是由兩個或者以上線程并行執行的時候,爭奪資源而互相等待造成的。

死鎖只有同時滿足互斥、持有并等待、不可剝奪、環路等待這四個條件的時候才會發生。

互斥條件

互斥條件是指多個線程不能同時使用同一個資源。

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

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

img

持有并等待條件

持有并等待條件是指,當線程 A 已經持有了資源 1,又想申請資源 2,而資源 2 已經被線程 C 持有了,所以線程 A 就會處于等待狀態,但是線程 A 在等待資源 2 的同時并不會釋放自己已經持有的資源 1。

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

img

不可剝奪條件

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

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

img

環路等待條件

環路等待條件指的是,在死鎖發生的時候,兩個線程獲取資源的順序構成了環形鏈。

比如,線程 A 已經持有資源 2,而想請求資源 1, 線程 B 已經獲取了資源 1,而想請求資源 2,這就形成資源請求等待的環形圖。

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

img

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

13. os的內存管理有分頁和分段了解嗎?

回答:

分段是邏輯方面的,比如函數會放在一個段,提高復用性

還能多想一點嗎 虛擬內存是分頁還是分段

分頁,記得一個頁面置換

14. 頁面置換有哪些算法?

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

小林補充

頁面置換算法的功能是,當出現缺頁異常,需調入新頁面而內存已滿時,選擇被置換的物理頁面,也就是說選擇一個物理頁面換出到磁盤,然后把需要訪問的頁面換入到物理頁。

那其算法目標則是,盡可能減少頁面的換入換出的次數,常見的頁面置換算法有如下幾種:

最佳頁面置換算法(OPT)

先進先出置換算法(FIFO)

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

時鐘頁面置換算法(Lock)

最不常用置換算法(LFU)

最佳頁面置換算法

最佳頁面置換算法基本思路是,置換在「未來」最長時間不訪問的頁面。

所以,該算法實現需要計算內存中每個邏輯頁面的「下一次」訪問時間,然后比較,選擇未來最長時間不訪問的頁面。

我們舉個例子,假設一開始有 3 個空閑的物理頁,然后有請求的頁面序列,那它的置換過程如下圖:

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

最佳頁面置換算法

在這個請求的頁面序列中,缺頁共發生了 7 次(空閑頁換入 3 次 + 最優頁面置換 4 次),頁面置換共發生了 4 次。

這很理想,但是實際系統中無法實現,因為程序訪問頁面時是動態的,我們是無法預知每個頁面在「下一次」訪問前的等待時間。

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

先進先出置換算法

既然我們無法預知頁面在下一次訪問前所需的等待時間,那我們可以選擇在內存駐留時間很長的頁面進行中置換,這個就是「先進先出置換」算法的思想。

還是以前面的請求的頁面序列作為例子,假設使用先進先出置換算法,則過程如下圖:

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

先進先出置換算法

在這個請求的頁面序列中,缺頁共發生了 10 次,頁面置換共發生了 7 次,跟最佳頁面置換算法比較起來,性能明顯差了很多。

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

最近最久未使用(LRU)的置換算法的基本思路是,發生缺頁時,選擇最長時間沒有被訪問的頁面進行置換,也就是說,該算法假設已經很久沒有使用的頁面很有可能在未來較長的一段時間內仍然不會被使用。

這種算法近似最優置換算法,最優置換算法是通過「未來」的使用情況來推測要淘汰的頁面,而 LRU 則是通過「歷史」的使用情況來推測要淘汰的頁面。

還是以前面的請求的頁面序列作為例子,假設使用最近最久未使用的置換算法,則過程如下圖:

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

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

在這個請求的頁面序列中,缺頁共發生了 9 次,頁面置換共發生了 6 次,跟先進先出置換算法比較起來,性能提高了一些。

雖然 LRU 在理論上是可以實現的,但代價很高。為了完全實現 LRU,需要在內存中維護一個所有頁面的鏈表,最近最多使用的頁面在表頭,最近最少使用的頁面在表尾。

困難的是,在每次訪問內存時都必須要更新「整個鏈表」。在鏈表中找到一個頁面,刪除它,然后把它移動到表頭是一個非常費時的操作。

所以,LRU 雖然看上去不錯,但是由于開銷比較大,實際應用中比較少使用。

時鐘頁面置換算法

那有沒有一種即能優化置換的次數,也能方便實現的算法呢?

時鐘頁面置換算法就可以兩者兼得,它跟 LRU 近似,又是對 FIFO 的一種改進。

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

當發生缺頁中斷時,算法首先檢查表針指向的頁面:

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

如果訪問位是 1 就清除訪問位,并把表針前移一個位置,重復這個過程直到找到了一個訪問位為 0 的頁面為止;

我畫了一副時鐘頁面置換算法的工作流程圖,你可以在下方看到:

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

時鐘頁面置換算法

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

最不常用算法

最不常用(LFU)算法,這名字聽起來很調皮,但是它的意思不是指這個算法不常用,而是當發生缺頁中斷時,選擇「訪問次數」最少的那個頁面,并將其淘汰。

它的實現方式是,對每個頁面設置一個「訪問計數器」,每當一個頁面被訪問時,該頁面的訪問計數器就累加 1。在發生缺頁中斷時,淘汰計數器值最小的那個頁面。

看起來很簡單,每個頁面加一個計數器就可以實現了,但是在操作系統中實現的時候,我們需要考慮效率和硬件成本的。

要增加一個計數器來實現,這個硬件成本是比較高的,另外如果要對這個計數器查找哪個頁面訪問次數最小,查找鏈表本身,如果鏈表長度很大,是非常耗時的,效率不高。

但還有個問題,LFU 算法只考慮了頻率問題,沒考慮時間的問題,比如有些頁面在過去時間里訪問的頻率很高,但是現在已經沒有訪問了,而當前頻繁訪問的頁面由于沒有這些頁面訪問的次數高,在發生缺頁中斷時,就會可能會誤傷當前剛開始頻繁訪問,但訪問次數還不高的頁面。

那這個問題的解決的辦法還是有的,可以定期減少訪問的次數,比如當發生時間中斷時,把過去時間訪問的頁面的訪問次數除以 2,也就說,隨著時間的流失,以前的高訪問次數的頁面會慢慢減少,相當于加大了被置換的概率。

算法(35min+):

數組中和最接近目標值的三個數

數組最大的組合數{3,32,9,912} 組合成9912332

反問:

評價以及哪些方面需要學習?

測開崗干啥?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4612

    瀏覽量

    92901
  • 計數器
    +關注

    關注

    32

    文章

    2256

    瀏覽量

    94575
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    25947

原文標題:后端太卷?沖測開去了!

文章出處:【微信號:小林coding,微信公眾號:小林coding】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Buck輸出過產生原因及改善措施

    是指一個超過設定電壓的峰值電壓, 一般以尖峰脈沖形式呈現。在使用電源產品過程中,輸入端開關接觸不良和輸 入端熱插拔上電都可能會產生輸出過,若是輸出過超過后端設備的極限耐壓, 有
    的頭像 發表于 11-07 09:02 ?4317次閱讀

    深圳打孔機系統,CCD雙頭打孔提高生產效率

    控制傳動部分動作,使頭在平面上的x軸,y軸走位,完成走位動作之后氣動部分開始工作,電磁閥控制氣缸進行沖孔動作,完成自動打孔,整個動作一氣呵成,快速,準確,效率高,因此,被相關產業廣泛應用。然而現有
    發表于 05-08 10:17

    什么是過?怎么解決過

    什么是過?怎么解決過
    發表于 06-18 08:37

    深圳對位系統怎么樣呢?

    深圳印刷機是特印設備中的一個種類,廣泛應用于工業用品及塑膠、玻璃、金屬片、陶瓷片、電子板等等。絲印原理是通過絲(網)印刷的技術,將特定圖案印刷到既定材料表面。現已成為表面特種印刷或裝飾的一種
    發表于 09-08 15:59

    裁工藝與裁模設計

    裁工藝與裁模設計:裁是最基本的沖壓工序。本章是本課程的重點章。在分析裁變形過程及裁件質量影響因素的基礎上,介紹
    發表于 10-17 15:04 ?0次下載

    計算機程序設計藝術 (含第1,第2,第3 基本算法)

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

    后端系統,后端系統是什么意思

    后端系統,后端系統是什么意思 “后端系統”從寬泛的角度上講是指向用戶提供數據的服務器、超級服務器、群集系統、中程系統以及
    發表于 04-06 17:21 ?3681次閱讀

    技術曝光:TRADIM的液晶面板構件

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

    后端服務器如何實現把數據返回給前端?

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

    nodejs 后端技術介紹

    筆者最開始學的后端技術是 python 的 Django 框架,由于很久沒有使用過 python 語法,便想著了解一些 nodejs 的后端技術。下面將最近的收獲總結一下。
    的頭像 發表于 05-05 16:41 ?1113次閱讀

    針形狀對芯質量的影響

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

    后端有點客戶端去了

    如果收到新數據的 ACK 后,把 cwnd 設置為第一步中的 ssthresh 的值,原因是該 ACK 確認了新的數據,說明從 duplicated ACK 時的數據都已收到,該恢復過程已經結束,可以回到恢復之前的狀態了,也即再次進入擁塞避免狀態;
    的頭像 發表于 11-10 17:19 ?431次閱讀
    <b class='flag-5'>后端</b>有點<b class='flag-5'>卷</b>?<b class='flag-5'>沖</b>客戶端<b class='flag-5'>去了</b>!

    springboot前后端交互流程

    Boot 進行開發時,前后端交互是一個非常重要的部分,本文將詳細介紹 Spring Boot 前后端交互的流程。 前后端交互的基本原理 在前后端交互的過程中,前端負責向
    的頭像 發表于 11-22 16:00 ?2127次閱讀

    輸出過原因及改善措施

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

    模擬后端是什么意思

    模擬后端,在軟件開發和測試領域,通常是指使用工具或技術來模擬實際后端服務的行為。這樣做的主要目的是在項目開發過程中,當后端服務還未就緒或暫時無法訪問時,前端或其他依賴后端的系統能夠繼續
    的頭像 發表于 03-15 15:58 ?681次閱讀
    主站蜘蛛池模板: 2018天天操夜夜操| 好大好硬好深好爽的视频| 天天操天天操天天操香蕉| 午夜看片在线观看| 狠狠躁夜夜躁人人躁婷婷视频| 久久久久久99| 特级毛片免费看| 极品丰满翘臀后进啪啪| 久久久久国产精品免费免费| 777午夜精品免费播放| 美国bj69video18| 乱色伦短篇小说| 亚洲黄色性视频| 色激情综合网| 久草色播| 亚洲爱v| 久久精品免费| 综合激情网五月| 色91在线| 国产亚洲视频在线播放大全| 午夜影院h| 亚洲成人毛片| 天天做人人爱夜夜爽2020| 免费观看理论片毛片| www.色.con| 免费在线观看a视频| 国产黄色片网站| 三级理论在线观看| 天天色天天干天天| 国产在线观看黄色| 欧美性色欧美a在线播放| avtt国产| 高清午夜线观看免费| 视频一区亚洲| 亚瑟 国产精品| 嫩草影院网站入口| 午夜伦y4480影院中文字幕| 韩国男女无遮挡高清性视频| 欧美性精品videofree| 久久久久女人精品毛片九一| 国模欢欢大尺度|