20200905快手一面c 開發崗位

2021-10-24 08:51:08 字數 2668 閱讀 7670

面試官人很好,問問題也都會盡量選擇你比較熟悉的領域和內容去問,**也會給一些簡單的提示,提醒面試者不要緊張.自我介紹結束之後,就是講一下自己的專案,然後就是提問和演算法環節。

編譯期:

過載多型:函式過載,運算子過載

引數多型:類模板,函式模板

執行時:

子型別多型:虛函式

通過關鍵字virtual 修飾的成員函式就是虛函式

子類不會繼承父類的虛函式,而是需要實現自己的同名的虛函式,同時維護各自的乙個虛函式指標vptr和虛函式表(vtable),vtpr指向虛函式表的位址,虛函式表中存放著虛函式的位址.

ellipese 繼承自shape

虛函式表儲存在資料區,在同乙個類的物件中進行共享.

tail [ -f ] [ -c number | -n number | -m number | -b number | -k number ] [ file ]

引數解釋:

-f該引數用於監視file檔案增長。

-cnumber 從 number 位元組位置讀取指定檔案

-nnumber 從 number 行位置讀取指定檔案。

-mnumber 從 number 多位元組字元位置讀取指定檔案,比方你的檔案假設包括中文字,假設指定-c引數,可能導致截斷,但使用-m則會避免該問題。

-bnumber 從 number 表示的512位元組塊位置讀取指定檔案。

-knumber 從 number 表示的1kb塊位置讀取指定檔案。

file 指定操作的目標檔名稱

上述命令中,都涉及到number,假設不指定,預設顯示10行。number前面可使用正負號,表示該偏移從頂部還是從尾部開始計算

補充

跟tail功能相似的命令還有:

cat:從第一行開始顯示檔案內容。

tac:從最後一行開始顯示檔案內容。

more:分頁顯示檔案內容。

less與 more 相似,但支援向前翻頁

head: 僅僅顯示前面幾行

tail: 僅僅顯示後面幾行

n: 帶行號顯示檔案內容

od: 以二進位制方式顯示檔案內容

map底層是紅黑樹可實現順序查詢.

unordered_map底層是hash函式,不支援順序查詢.

無序容器unordered_map儲存為一組桶,各元素通過hash函式對映到各個桶中.每當桶不夠用時,桶數會以大致 bucket[n] = 2*bucket[n-1] + 奇數 (1, 3, 5, 9 …)來增長。與vector 成倍增長倒是不同。

函式名功能描述

時間複雜度

空間複雜度

-stable_sort

對給定區間所有元素進行穩定排序

nlogn

nsort

對給定區間所有元素進行排序

nlogn

1new:

new運算子,c++內建運算子。不能被過載,其行為總是一致的。具體的操作相當於:先呼叫operator new分配記憶體,再呼叫建構函式初始化記憶體空間,再返回記憶體空間位址

operator new:

new函式,可過載。要實現不同的記憶體分配行為,應該過載operator new,而不是new。

placement new記憶體碎片—描述乙個系統中所有的不可用的空閒記憶體;這些資源之所以仍然未被使用,是因為負責分配記憶體的分配器使這些記憶體無法使用。這一問題通常都會發生,原因在於空閒記憶體以小而不連續方式出現在不同的位置。由於分配方法決定記憶體碎片是否是乙個問題,因此記憶體分配器在保證空閒資源可用性方面扮演著重要的角色

malloc基本的實現原理就是維護乙個記憶體空閒鍊錶,當申請記憶體空間時,搜尋記憶體空閒鍊錶,找到適配的空閒記憶體空間,然後將空間分割成兩個記憶體塊,乙個變成分配塊,乙個變成新的空閒塊。如果沒有搜尋到,那麼就會用sbrk()才推進brk指標來申請記憶體空間。

搜尋空閒塊最常見的演算法:首次適配,下一次適配,最佳適配。

首次適配: 第一次找到足夠大的記憶體塊就分配,這種方法會產生很多的記憶體碎片。

下一次適配: 也就是說等第二次找到足夠大的記憶體塊就分配,這樣會產生比較少的記憶體碎片。

最佳適配* : 對堆進行徹底的搜尋,從頭開始,遍歷所有塊,使用資料區大小大於size且差值最小的塊作為此次分配的塊。

快手一面二面面經

9點半開始面試,第一次來西二旗,8點多點就到了,在大廳等待區域等著,順便看下美團的面經。自我介紹,聊了一下為什麼轉專業,為什麼考研 與 equals 區別?過 重寫和過載?物件導向有哪些特點,與面向過程相比有哪些優勢?過 聊一下jvm的執行時資料區吧?棧區域能詳細說一下嘛?這個棧沒有詳細了解過。執行...

快手使用者增長實習一面。

首先問了專案的背景。問了js的資料型別 閉包 閉包的應用 es6的新特性 提了promise,進而提出巨集微任務。我說dom的是非同步操作是巨集任務,面試官給我講了下,說應該是微任務。給我舉例了vue中的nexttick方法,是在所有dom的非同步操作後執行。然後問我nexttick的實現原理,如果...

騰訊測試開發實習一面(送位元組一面)

我面試的崗位是測試開發實習崗。面試持續乙個多小時時間 面試是線上面試的形式,有三位前輩 都挺年輕,頭髮都在 來面試 其中兩位問了我問題,一位偏重思維方式,一位偏重語言基礎 先是一段自我介紹,大約4,5分鐘的時間。之後leader先問了一下專案和實習經歷,然後讓我自選了一段經歷,總結的說一下。說完之後...