後台面試問題

2022-04-07 03:37:05 字數 4766 閱讀 8140

2、中斷和異常的區別 中斷: 系統停止當前正在執行的程式而轉向其他服務 異常: 軟體執行過程中的一種開發過程中沒有考慮到的程式錯誤 也稱為同步中斷,在指令執行結束後發生的中斷

4、死鎖 必要條件: (1)互斥條件:乙個資源每次只能被乙個程序使用 (2)請求與保持條件:程序因請求資源而阻塞時,對獲得的資源保持不放 (3)不剝奪條件:已獲得資源,未使用完之前不能被剝奪 (4)迴圈等待條件:

解決方法: (1)死鎖預防:破壞死鎖產生的條件 (2)死鎖避免:每次申請之前判斷是否安全(銀行家演算法) (3)死鎖檢測:(超時法和等待圖法) (4)死鎖解除

5、內聯函式和巨集定義 巨集定義: 預編譯階段 不做型別檢查 內聯函式: 編譯階段 做型別檢查 短小函式 頻繁呼叫造成記憶體膨脹

6、資料庫索引 唯一索引 索引值唯一,但允許有空值 主鍵索引 特殊的唯一索引,但不允許有空值 普通索引 組合索引 多個屬性值構成的索引

7、聚集索引&非聚集索引 聚集索引 索引鍵值的邏輯順序決定了資料的物理儲存順序 葉子節點就是資料塊 非聚集索引 索引鍵值的邏輯順序與資料的物理順序可能不一致 葉子結點是指向對應資料塊的指標 b+樹&平衡二叉樹 b+數 所有關鍵字出現在葉子節點 非葉節點是索引,葉子節點是 儲存 更適合做檔案索引系統 查詢效能接近二分查詢樹

8、設計模式

1、簡單工廠模式:針對同樣的資料,不同的操作用同樣的介面。由工廠類建立不同的產品,不同的產品都是抽象類的繼承類。

2、工廠方法:針對同樣的資料,不同的操作使用不同的介面。

3、抽象工廠:針對不同的資料,不同的操作使用不同的介面。

9、10億個數找10個頻率最高的

1、利用hash方法把資料集分成幾個部分。

2、利用hash統計每一部分的詞頻。

3、利用堆排序求出每個資料集的前k個

4、合併每個資料集的前k個。

10、1001裡兩個重複的數字 抑或

11、最大回文子串 動態規劃,記錄左邊回文的最大右邊界

12、100層樓丟兩個雞蛋 不等式約束求最大值

13、三狼過河智力題 深度優先搜尋

14、斐波那契數列的變形 跑樓梯

15、二叉樹層次遍歷(如何只遍歷某一層) 佇列實現, 1

6、鍊錶反轉 注意引數取值 17、二叉樹後序遍歷,遞迴和非遞迴

18、常用排序演算法的穩定性 快排,堆排,希爾排序不穩定,舉例子

19、為什麼靜態單例物件? 單例模式唯一的例項必須為靜態 不能建立物件,只能通過類中的介面來呼叫類中建立的物件。 使用類名直接呼叫類中的方法,所以類中的成員函式和資料成員必須是靜態的。

20、linux系統的特點 開放性,多使用者,多工,良好的介面,裝置獨立性:作業系統把所有的裝置統一當作檔案來處理,可靠的安全系統,良好的移植性:適應各種平台,豐富的網路功能。

21、多程序和多執行緒 前者開銷大,後者開銷小(資料,資源角度),前者更加獨立。

22、多執行緒程式設計要點,如何保證執行緒間資料訪問的安全性 負載平衡,發揮每個核的作用。互斥和同步。

23、一棵有序的二叉樹中搜尋到給定值 二叉排序樹

24、c++的記憶體分配機制 1、記憶體區:棧、堆、全域性/靜態、常量。2、類中通過棧中指標在堆內部申請空間。

25、c++物件導向的特點 基本特徵:抽象、封裝、繼承、多型

26、虛函式(作用及實現) 參考簡單工廠模式。

27、http協議(請求方式get和post的區別,不同的狀態碼,url規格,404是什麼錯誤) get:請求讀取,post:請求新增資訊,1xx: 通知資訊,2xx:成功,3xx:重定向,4xx:客戶端出錯,5xx:伺服器出錯,《協議》://《主機網域名稱》:《埠號》/《具體路徑》,not found

28、網頁的推薦是怎麼實現的(cookie,session是什麼?儲存在什麼位置,起什麼作用?) cookie記錄訪問網頁的情況。cookie儲存在客戶端,session儲存在伺服器端。

29、10億個11位的號碼中找給定號碼是否存在 bool過濾器

30、linux系統中的常用命令 cd,gcc,ls(檔案列表),grep,cp(拷貝所有檔案),find,mv(移動檔案),rm(刪除),ps(檢視某一時刻程序的執行結果),tar(打包),time(測算乙個命令的執行時間)

31、i/o多路復用(select,poll,epoll各自的原理,區別,如何使用) 通過一種機監視多個描述符,一旦就緒方可執行。select: 每次呼叫,都需要把檔案描述符從使用者態拷貝進核心態;從核心態遍歷所有的檔案描述符;支援的檔案數量小。

32、專案中遇到的最大困難,如何解決,專案的最大成就

33、找出陣列中最大的連續和 動態規劃,當前最大值

34、三個執行緒按照順序輸出

35、hash表和b+樹的優勢 **資料庫索引** 1、唯一索引hash佔明顯優勢。2、範圍查詢b+樹佔明顯優勢。3、b+樹查詢速度不會有太大波動。

36、合併兩個有序鍊錶

37、資料庫正規化 2nf:非主屬性完全函式依賴於碼。3nf:非主屬性不傳遞依賴於碼。bcnf: 任何函式以來都含有碼。

38、快速排序演算法(手寫) 遞迴&非遞迴

39、單例模式中的多執行緒問題如何解決 懶漢模式:加同步鎖,雙重檢測鎖定、靜態內部類(類似惡漢模式)。

41、二叉樹的遍歷 前中後非遞迴

42、linux命令檢視cpu的使用情況 top

43、cpu load命令 程序對列的長度(cpu做多少工作)

44、資料庫事務的隔離級別 55

45、髒讀,幻讀,丟失修改 (讀完另一方rollback)、(讀完對方已修改再讀)、(改完別人又改)

46、鎖的型別(排他鎖、共享鎖) 排他鎖(x鎖):只允許加鎖一方讀取和修改資料其它不能加任何型別的鎖。共享鎖(s鎖):加鎖一方和其它的只能讀,其它只能加s鎖。

47、字母字串排序,aab 重新定義比較函式

48、字串找出不重複的字元組成的子串 hash表

49、訊息佇列 不懂

50、頁面置換演算法 fifo,lru,lfu(最不長使用)

51、抖動 剛被置換出的頁面馬上又被使用

52、缺頁中斷 頁表沒有,調入記憶體

53、條件概率 盒子有球問題

54、九宮格交換棋子

55、資料庫隔離級別

1、可讀取未確認:寫事務阻止寫事務,但未阻止讀事務(髒資料)。

2、可讀取確認:寫事務阻止讀寫事務,但讀事務不阻止其它事務(不可重複度)。

3、可重複讀:讀事務阻止寫事務,但不阻止其它事務(丟失修改)。

56、繩子覆蓋數軸上的點 兩個端點,小於前走,大於後走

57、2sum和ksum問題 hash方法或排序後左右夾逼,ksum通過遍歷轉化為2sum問題。

58、資料庫failover

59、aqs(如何管理執行緒,實現公平鎖和非公平鎖)

60、蓄水池問題

61、實現大數相乘 字串儲存,注意進製

62、作業系統磁碟的了解

物理結構:碟片、磁軌、扇區。

邏輯結構:引導控制塊(系統從該分割槽引導作業系統有關資訊),分割槽控制塊(分割槽的詳細資訊)。

排程演算法:fcfs、sstf、scan、c-scan

63、linux shell

64、作業系統記憶體碎片

65、程式設計實現:1!+…+n!

66、sql查詢語句

67、volitile關鍵字,記憶體屏障和重排序

68、分布式session三種實現方式和優缺點

69、重建二叉樹

70、二份查詢 左右邊界

71、字串全排列(時間複雜度) 遞迴演算法(按次序交換兩個字元的位置),o(n!)

72、陣列有正有負,移到兩邊 快速排序,中軸為0,swap(a[index++],a[i]);

73、判斷整數是否為2,4,8的冪次方 return x&(x-1)==0; return x&(x-1)==0&&x&0x55555555!=0; int i; for(i=0;n!=1;i++) n=n>>1; return x&(x-1)&&i%3==0;

74、旋轉有序陣列,找到其中的乙個值(leetcode) 確定左邊有序還是右邊有序

76、arp協議 資料鏈路層:位址解析協議(由ip位址獲得mac位址),在本區域網內廣播傳送請求,響應資料幀是單波傳送。(napt)

77、ip位址和mac位址的區別

78、常見的單例模式

單例模式:某一實體類只需存在乙個物件就可以滿足所有的業務需求。

1、其他類無法初始化該類的物件(建構函式為私有型別)。

2、該類可以在類中例項化乙個唯一的自身物件(靜態物件)。

3、當前類可以向外界提供乙個唯一的介面來提供例項,並返回乙個該類的物件(靜態函式)。

惡漢模式: 例項在載入類時建立。執行緒安全(其他類不能修改例項)

懶漢模式: 其他類呼叫該類的獲取方法時建立例項。執行緒不安全(多個執行緒建立多個例項)

81、觀察者模式用法,實現

82、hash解決衝突的方法,如何保證多個hash函式不會出現死迴圈

83、如何破壞單例 反射機制和序列化機制

84、64g記憶體如何設定堆大小

騰訊後台面試總結

linux和os netstat tcpdump ipcs ipcrm 如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 這四個命令的熟練掌握程度基本上能體現面試者實際開發和除錯程式的經驗 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網...

面試問題整理之後臺問題

1.epoll中et和lt的區別與實現原理 lt 水平觸發,效率會低於et觸發,尤其在大併發,大流量的情況下。但是lt對 編寫要求比較低,不容易出現問題。lt模式服務編寫上的表現是 只要有資料沒有被獲取,核心就不斷通知你,因此不用擔心事件丟失的情況。et 邊緣觸發,效率非常高,在併發,大流量的情況下...

蘑菇街Java後台面試總結

4號早上10點接的 面試官是個說話很好聽的小哥,也很有耐心,開門見山先自我介紹,然後大量的框架原理就來了 每個問題都屬於乙個系列,問到我不會為止,沒有演算法題 你的專案中有用spring,那麼什麼是spring的aop技術,請談一談 這個問題答完,面試官緊跟著繼續問我 springaop的原理說一下...