深信服c 面試總結

2021-10-03 03:18:28 字數 1666 閱讀 8059

面試官:說說你最熟悉的幾個方面

回答:c++、qt、網路程式設計

面試官:好,介紹一下你的專案,巴拉巴拉

(沒有自我介紹,開始進入主題)

問題1:說說http協議有哪些常見狀態碼,403代表什麼意思?

回答:200,404,403,400等,403表示資源不可用。伺服器收到了客戶的請求,但拒絕處理它。主要由於伺服器上檔案或目錄的許可權設定導致。

問題2:tcp三次握手和四次揮手說一下,他們的當時狀態分別是怎麼樣的?

三次握手:

傳送端首先傳送乙個帶syn標誌的資料報給接收端。

接收端收到後,回傳乙個帶有syn/ack標誌的資料報

傳送端收到後,再回傳乙個帶ack標誌的資料報,表示握手結束。

四次揮手:

客戶端首先傳送乙個帶fin標誌的資料報給服務端,請求關閉客戶端到服務端的連線。

服務端收到fin後,回傳乙個帶有ack標誌的資料報給客戶端

服務端再傳送乙個fin給客戶端,關閉服務端到客戶端的連線。

客戶端收到fin,回傳乙個ack給服務端。至此四次握手結束

狀態記不清了。

問題3:linux熟悉麼,查詢已知程序名的程序號怎麼查?

回答:還好,結果沒答出來。後面查了一下是:ps -ef | grep 程序名

問題4:聊聊c++基礎吧,c++怎麼申請記憶體,和c語言申請的方式有什麼不同?

回答:c++使用new運算子申請,c語言使用malloc,

二者的不同之處在於,1、malloc是c庫函式,new是運算子,2、new可以在申請記憶體時對變數進行初始化,malloc不可以。

3、new以具體型別為單位進行記憶體分配,malloc只能以位元組為單位進行記憶體分配。

問題5:c++如何判斷記憶體是否申請成功?

回答:if(p==null); 面試官說不對,這是c語言的方式,我說的是c++的。沒答出來,後面查了一下是用try catch丟擲異常來處理new記憶體分配失敗的問題。

問題7:stl的vector的實現原理是什麼,自動擴容的時候擴大多少倍?

回答:vector通過乙個連續的記憶體存放元素,和陣列類似,如果記憶體已滿,在新增資料的時候,就要分配一塊更大的記憶體,將原來的資料複製過來,釋放之前的記憶體,在插入新增的資料。一般是2倍。

問題7:stl的map的實現原理是什麼,如何給無序的map排序?

回答:二叉樹,面試官問哪一種型別的二叉樹,回答紅黑樹。排序分為對key或者value排序。

問題8:如何快速定位乙個大型c++專案的記憶體洩漏問題?

回答:查詢關鍵日誌。還有其他方法麼?想不到了。

問題9:多執行緒的同步有哪幾種方式?多程序通訊方式呢?

回答:多執行緒同步:互斥鎖、讀寫鎖、訊號量,條件變數

多程序通訊:訊息佇列,共享記憶體,套接字、管道。

除了簡單的,其他的要麼是回答不出,要麼就是回答不全,後面面試官可能也覺得基礎不太好,就沒有繼續問下去了。

還是複習沒有到位,不過也發現了目前存在的比較多的問題,繼續加油吧。

個人感覺有時候面試一下,還是有益無害的,能幫助自己查漏補缺,所謂當局者迷,哈哈哈。

深信服面試

深信服面試python開發工程師,不得不說,這是最難的一次。小華為 果然名不虛傳。還想體驗一下加班到底有多嚴重,可是不給機會呀,可能是無緣吧!1.直接通過 進行連線 優缺點 使用這種方式進行字串連線的操作效率低下,因為python中使用 拼接兩個字串時會生成乙個新的字串,生成新的字串就需要重新申請記...

深信服python面試咋樣 面試深信服的感受

這篇文章是乙個學員寫的。一面 50分鐘左右 1.extern 用法 2.虛函式與純虛函式的區別 3.兩個浮點數如何做比較 4.結構體能直接使用memcmp比較嗎 5.printf如何實現可變參的 6.如果判斷單鏈表是否有環 如何判斷兩個單鏈表是否相交,如果找到相交節點。7.說說單鏈表和雙向鍊錶 8....

2019 9 22深信服面試

聊專案,完成的內容,遇到的難點 malloc和new的區別,有沒有方法可以再new失敗後得到乙個返回值,而不是丟擲異常 標準 c 提供了乙個方法來抑制 new 丟擲異常,而返回空指標 int p new std nothrow int 這樣如果 new 失敗了,就不會丟擲異常,而是返回空指標 if ...