阿里巴巴面試題及答案 持續更新(2)(2023年)

2021-10-06 19:44:44 字數 4387 閱讀 1033

1、自我介紹

2、程序和執行緒聊聊?(沒準備,簡單答了自己的理解,感覺好像還是要背一下)

3、繼上個問題,說下多執行緒共享的資源(這裡回答得磕磕絆絆,又問了全域性變數是不是共享的,我說是的,又問了為什麼,感覺方向回答錯了)

4、問了一下專案的演算法介面 (我說是一些底層統計學習演算法的restful api,他好像不感興趣)

5、問了一下技術棧(說了一下主要用python,結果他轉頭問c++,一臉懵)

6、c++裡面的const關鍵字,能修飾volatile嗎?(這個因為c++很久不用,都忘了,根據自己對const理解回答了一下常量的一下東西,感覺也不是很讓他滿意)

7、c++裡面的記憶體洩露?(又是懵,回答了之前做c程式時候遇到的一下情況)

8、c的malloc和c++new的區別?(回答了乙個申請記憶體時指定大小的區別,其他的沒回答上來)

9、寫**。發了乙個伯樂鏈結,進去他手敲了一段c++的,問題大概是在乙個二叉樹裡面找到指定型別的最小值個數(這裡我對指定型別很懵逼,覺得不是所有型別都能做比較,他一開始說就是int,後面又改了列舉a,b,c三種型別,我就很蒙了,寫了乙個統計,遍歷節點比較大小,反正沒具體寫出來,說了一下思路,他就讓結束面試了。)

1、指標和陣列的區別

2、靜態多型和動態多型都有什麼

3、cpp 虛擬記憶體管理

4、什麼是智慧型指標? 智慧型指標的原理什麼?

使用智慧型指標的目的是什麼? 使用智慧型指標一定可以防止記憶體洩露嗎? (什麼情況下使用智慧型指標仍然會導致洩露)。

5、newmalloc區別

6、tcp udp區別

7、tcp三次握手四次揮手

8、簡歷上的專案難點,還可以怎麼優化?

比賽內容和分工是怎樣的?

1、首先自我介紹

2、之前發郵件讓做三個題,面試講當時的思路,優化方法

3、面向過程和物件導向的區別

4、const和define的區別 插入一條(new delete和malloc free的區別)

5、講講stl的容器

6、vector和list區別,底層實現

乾貨 | 名企高頻考點-c++ vector基本使用

乾貨 | 名企高頻考點之-c++ stl 二維vector的寫法,先行再列和先列再行遍歷

乾貨 |名企高頻考點之-c++ stl vector底層實現

7、用過什麼設計模式

8、設計個單例模式

9、三次握手

10、程序間通訊有哪些

11、epoll和select的區別

12、b 樹和b樹的區別

13、執行緒池的設計與相關問題

14、scala和cpp的區別

15、介紹了下實習內容

16、linux下,想殺掉所有的叫***的程序用乙個命令實現

17、linux下,查詢某個檔案被哪些程序占用的命令 18、你有什麼要問我的嗎 19、專案寫得多嗎

1、專案

2、程式設計:反轉單向鍊錶 malloc和new的區別,free和delete。new一定會用到malloc嗎?過載operator new

3、記憶體洩漏,最後會怎麼樣?會對其他程式造成什麼影響

4、水平觸發和邊緣觸發,邊緣觸發怎麼寫

5、野指標的產生,危害,段錯誤怎麼發生的?使用懸空指標一定會段錯誤嗎?什麼時候會,什麼時候不會 多執行緒單執行緒區別,多執行緒一定比單執行緒快嗎?學過彙編嗎?

6、編譯和鏈結了解嗎?

7、伺服器程式阻塞io怎麼設計?知道早期apache怎麼做的嗎?

8、tcp、udp區別,介紹一下擁塞控制,丟包時為什麼閾值會減半

part1:熱身運動

面試官小哥哥人很nice,沒有一上來就直接問問題,而是以聊天的形式開始了面試,主要問了什麼專業的、實驗室做什麼的、為什麼想做c++開發。。。balabala,這個階段盡可能多的去說,也是乙個引導面試官的過程(後面可能會順著你說的去問問題)。

part2:手撕**

// 實現乙個函式 能夠對輸入的字串陣列進行按含有同樣的字元進行分類

// 舉個例子,輸入:["eat","tea","tan","ate","nat","bat"]

// 輸出:[["ate","eat","tea"],["nat","tan"],["bat"]]

這本來是leetcode 49同字元詞語分組原題,後來又加了條件

// 相同的字元只算一次比如 aate 和 ate歸為同一類

當時想到的是去重,改了一下程式ok

因為程式中用到了sort()函式,然後讓自己實現,其實就是把字串中字元排序

接著又說到string拷貝過多的問題,有沒有其他方法?

還問了其他的,記得不是很清楚了,感覺就是面試官不斷換條件變著法考你程式設計基礎。

part3:基礎連連問

1、虛函式相關(高頻必問)

2、throw異常後沒有catch會怎麼樣

3、死鎖相關(高頻)

4、程序和執行緒區別,程序間的通訊方式(必問)

5、三次握手(高頻必問)

1、互相自我介紹

2、記憶體分配(我先提到的作業系統,就順著往下問了)

3、程序和執行緒相關問題

4、生產者消費者模型相關的問題

5、虛函式和多型相關(這塊內容真的是炒雞炒雞炒雞重要啊)

6、了解哪些設計模式?哪些模式用到了多型思想?(瘋狂問多型,靚仔語塞。。。)

7、stl中容器有哪些?只考慮遍歷的話,用什麼容器,說明理由?

8、map和unordered_map的底層資料結構?

9、手撕**:字串轉換成浮點數atof:如「123.456」——》123.456(沒有像一面那樣問很多)

10、了解大資料相關的嗎?了解分布式系統嗎?(這個跟部門業務有關)

11、海量資料處理問題?

1、設計乙個快取,由特定的key找到value 記憶體有限,實現置換功能,先進先出 用什麼資料結構 如何設計

2、生產者消費者,(加鎖)搶奪鎖消耗時間,生產者如何提高效率,不加鎖如何實現。

3、乙個檔案 100g 每一行都有訪問ip 找出出現次數最多的10個ip 只有256m的記憶體

4、訪問某個**過程中 tcp四層網路模型分別做了什麼事情 ip的訪問過程

5、大量的clos_wait close_wait/time-wait區別 為什麼需要2msl 2msl如何解決

6、紅黑樹和b+樹的區別 為什麼資料庫索引用b+樹不用紅黑樹 紅黑樹在什麼場景下比較合適 map用紅黑樹不用b+樹的原因

1、const用法 類成員函式後面接乙個const什麼意思

2、malloc和new的區別 為什麼要設計出new

3、多型 虛函式表

4、輸入乙個****的發生過程

5、排排序演算法時間複雜度比較

6、a.out可執行檔案是如何載入進記憶體的

7、三次握手

8、leetcode乙個原題 兩個陣列求交集 我用了map讓優化 最後用了unordered_map

1、幾百g的日誌檔案,存放訪問過的ip位址,找訪問量topk,如何快速查詢某個ip是否訪問過(是否包含某個ip)

2、c++多型

3、vector和list,clear()函式的區別。

乾貨 | 名企高頻考點-c++ vector基本使用

乾貨 | 名企高頻考點之-c++ stl 二維vector的寫法,先行再列和先列再行遍歷

乾貨 |名企高頻考點之-c++ stl vector底層實現

4、epoll原理

5、volatile關鍵字

6、找到兩個鍊錶有公共節點,多種方法

7、debug和release的區別

8、建構函式參數列,與函式體有什麼區別

9、指標和引用的區別

10、自己有什麼優勢

11、有什麼問題

1、static關鍵字,在什麼時候初始化的(沒答上來,應該就是執行的時候?)

2、c++11新特性

3、按下鍵盤後會發生什麼事

4、棧和堆的理解

5、棧在c++具體是如何管理運作的

6、有沒有關注開源專案

7、知不知道棧幀

8、程式分為哪些段(彙編知識?)

9、對開發行業有什麼看法,有什麼優勢

10、weak_ptr

11、智慧型指標有沒有在實際中用過

12、開發過程中遇到過什麼特別的困難

13、有什麼問題

獲取面試資料:領取

資料結構面試題及答案講解:二叉樹專題(上)

阿里巴巴面試題

作業系統的任務排程 房間內有n 1個群眾,1個明星,群眾之間的認識情況未知,所有的群眾都認識這個明星,現在有乙個機器可以問乙個人是否認識另乙個人,效率為o 1 請設計乙個演算法在n個人中找出這個明星。前線戰場有n個戰士,每個戰士都掌握了一些情報,戰士之間的交流 比如打 可以交換雙方的情報。請設計乙個...

阿里巴巴面試題 指標

下面程式會輸出什麼結果?include include int main char pa a pa printf s n pa system pause return 0 答案 解析 char a 這一行 表示建立了乙個字元型的指標陣列a,陣列裡有三個元素。如下圖 陣列裡存了三個字元型指標,每個指標...

阿里巴巴js面試題3

該題難度係數 考查的技術點 1 this 2 閉包 題目如下 var name a var object console.log object.getnamefunc var name2 a var object2 console.log object2.getnamefunc 執行結果 接下來我們...