C 後台開發面試時一般考察什麼?

2021-09-25 00:10:52 字數 2496 閱讀 5338

雖然面試技巧和心態也很重要,但這裡只有24k純技術乾貨,期望大家能夠準備好,進入我司。點讚後,收藏吧!

c++多型的實現?

虛函式的作用?

虛函式用於實現多型,這點大家都能答上來但是虛函式在設計上還具有封裝和抽象的作用。比如抽象工廠模式。

動態繫結是如何實現的?

靜態多型和動態多型。靜態多型是指通過模板技術或者函式過載技術實現的多型,其在編譯器確定行為。動態多型是指通過虛函式技術實現在執行期動態繫結的技術。

虛函式表

虛函式表是針對類的還是針對物件的?同乙個類的兩個物件的虛函式表是怎麼維護的?

編譯器為每乙個類維護乙個虛函式表,每個物件的首位址儲存著該虛函式表的指標,同乙個類的不同物件實際上指向同一張虛函式表。

建構函式中計數初始化為1;

拷貝建構函式中計數值加1;

賦值運算子中,左邊的物件引用計數減一,右邊的物件引用計數加一;

析構函式中引用計數減一;

在賦值運算子和析構函式中,如果減一後為0,則呼叫delete釋放物件。

share_prt與weak_ptr的區別?

這一塊考察範圍太廣,主要靠多刷題吧,牛客網,劍指offer,leetcode等。

幾十億個數經常要查詢某乙個數在不在裡面,使用布隆過濾器,布隆過濾器的原理。布隆過濾器可能出現誤判,怎麼保證無誤差?

tcp重發機制,nagle演算法

tcp的擁塞控制使用的演算法和具體過程

tcp的視窗滑動

http資料由請求行,首部字段,空行,報文主體四個部分組成

首部字段分為:通用首部字段,請求首部字段,響應首部字段,實體首部字段

至少了解攻擊的原理和基本的防禦方法,常見的攻擊方法有一下幾種

(1) 程序與執行緒區別?

(2) 執行緒比程序具有哪些優勢?

(3) 什麼時候用多程序?什麼時候用多執行緒?

(4) linux中程序和執行緒使用的幾個函式?

(5) 執行緒同步?

在windows下執行緒同步的方式有:互斥量,訊號量,事件,關鍵**段

在linux下執行緒同步的方式有:互斥鎖,自旋鎖,讀寫鎖,屏障(併發完成同一項任務時,屏障的作用特別好使) 知道這些鎖之間的區別,使用場景?

匿名管道與命名管道的區別:匿名管道只能在具有公共祖先的兩個程序間使用。

共享檔案對映mmap

mmap建立程序空間到檔案的對映,在建立的時候並不直接將檔案拷貝到物理記憶體,同樣採用缺頁終端。mmap對映乙個具體的檔案可以實現任意程序間共享記憶體,對映乙個匿名檔案,可以實現父子程序間共享記憶體。

常見的訊號有哪些?:sigint,sigkill(不能**獲),sigterm(可以**獲),sigse**,sigchld,sigalrm

虛擬記憶體的作用?

虛擬記憶體的實現?

作業系統層面對記憶體的管理?

記憶體池的作用?stl裡記憶體池如何實現?

程序空間和核心空間對記憶體的管理不同?

linux的slab層,vam?

夥伴演算法

高階記憶體

linux程序分為兩種,實時程序和非實時程序;

優先順序分為靜態優先順序和動態優先順序,優先順序的範圍;

排程策略

互動程序通過平均睡眠時間而被獎勵;

(1) 死鎖產生的條件;

(2) 死鎖的避免;

linux命令 在乙個檔案中,倒序列印第二行前100個大寫字母

cat filename | head -n 2 | tail -n 1 | grep '[[:upper:]]' -o | tr -d '\n'| cut -c 1-100 | rev

與cpu,記憶體,磁碟相關的命令(top,free, df, fdisk)

網路相關的命令netstat,tcpdump等

sed, awk, grep三個超強大的命名,分別用與格式化修改,統計,和正則查詢

ipcs和ipcrm命令

查詢當前目錄以及字母下以.c結尾的檔案,且檔案中包含」hello world」的檔案的路徑

建立定時任務

五種io模型:阻塞io,非阻塞io,io復用,訊號驅動式io,非同步io

select,poll,epoll的區別

孤兒程序是怎麼產生的?

僵死程序是怎麼產生的?

僵死程序的危害?

如何避免僵死程序的產生?

夥伴演算法,用於管理物理記憶體,避免記憶體碎片;

快取記憶體slab層用於管理核心分配記憶體,避免碎片。

互斥鎖,自旋鎖,訊號量,讀寫鎖,屏障

互斥鎖與自旋鎖的區別:互斥鎖得不到資源的時候阻塞,不占用cpu資源。自旋鎖得不到資源的時候,不停的查詢,而然占用cpu資源。死鎖

答案在我這篇部落格中給出了自己理解的程度,歡迎交流!

以下還總結成了文件,目錄內容同上,同時總結了一些技巧:

C 後台開發面試 STL相關

六大元件及其關係 空間配置器 容器 迭代器 演算法 仿函式 介面卡 記憶體管理 記憶體配置和物件構造 析構分開。使用雙層級配置器 第一級直接 malloc,free 第二級記憶體池 維護 16 個自由鍊錶 迭代器 一種智慧型指標 vector 動態分配的陣列,連續線性空間 維護 3 個迭代器 sta...

後台開發面試整理之C

對於一些平台,特定的資料型別只能從特定的位址進行讀取,隨意防止將導致錯誤。而更一般的情況是,如果不按照規定存放資料,將會造成讀寫效率上的損耗。比如32位的intel處理器通過匯流排訪問 包括讀和寫 記憶體資料。每個匯流排週期從偶位址開始訪問32位記憶體資料,記憶體資料以位元組為單位存放。如果乙個32...

專案開發時clearcase一般使用步驟

clearcase 靜態檢視安裝步驟 1 unix下建立靜態檢視 如 進入vi狀態,在最後一行加入以下行,用於指明載入模組,注意其它行不要修改 clearcase 活動與程式檔案的關係 1 一次定版活動中只能包含本次上線的檔案元素 程式 2 乙個元素的所有版本必須包含在本次上線的活動中 乙個或多個活...