C 面經閱讀總結(持續更新)

2021-10-22 12:02:36 字數 4326 閱讀 1373

二、技術面

2、計算機網路考點

3、資料庫

4、linux

5、作業系統

網盤鏈結

提取碼:8ayu

(型別,儲存,初始化,作用域)

記憶體空間:指標有,引用沒有

指標大小4,而引用是別名,帶下為被引用物件的大小。

指標可以為null,而引用必須被初始化為乙個已有物件的引用

做引數傳遞時,指標解引用才可以對物件操作,而對引用的修改,可以直接修改原物件。

指標可以有const,而引用沒有

指標可以指向其它物件,而引用不能被改變

指標可以有多級指標,而引用只有一級

++運算子對兩者的意義不一樣

返回動態記憶體分配的物件或記憶體,必須用指標,引用可能造成記憶體洩漏。

8申請的空間在函式結束時忘記釋放會造成記憶體洩露。智慧型指標就是乙個類,當超過了類的作用域時,會自動呼叫析構函式,釋放資源。所以智慧型指標的作用原理就是在函式結束時自動釋放記憶體空間,不需要手動釋放。

auto_ptr

unique_ptr獨佔式擁有和嚴格擁有

shared_ptr

weak_ptr

(1) 建立tcp伺服器的各個系統呼叫

(2) 繼上一題,說明socket網路程式設計有哪些系統呼叫?其中close是一次就能直接關閉的嗎,半關閉狀態是怎麼產生的?

(3) 對路由協議的了解與介紹。內部閘道器協議igp包括rip,ospf,和外部閘道器協議egp和bgp.

(4) udp如何實現可靠傳輸

(5) tcp和udp的區別

(6) tcp和udp相關的協議與埠號

(7) tcp(udp,ip)等首部的認識(http請求報文構成)

(8) 網頁解析的過程與實現方法

(9) 在瀏覽器中輸入url後執行的全部過程(如www.baidu.com)重點、熱門問題

(10) 網路層分片的原因與具體實現

(11) tcp的三次握手與四次揮手的詳細介紹(tcp連線建立與斷開是熱門問題)

(12) tcp握手以及每一次握手客戶端和伺服器端處於哪個狀態

(13) 為什麼使用三次握手,兩次握手可不可以?(重點,熱門問題)

(14) time_wait的意義(為什麼要等於2msl)

(15) 超時重傳機制(不太高頻)

(16) tcp怎麼保證可靠性?

(17) 流量控制的介紹,採用滑動視窗會有什麼問題(死鎖可能,糊塗視窗症候群)?

(18) tcp滑動視窗協議

(19) 擁塞控制和流量控制的區別

(20) tcp擁塞控制,演算法名字?(極其重要)

(21) http協議與tcp的區別與聯絡

(22) http/1.0和http/1.1的區別

(23) http的請求方法有哪些?get和post的區別。

(24) http的狀態碼 403 201等等是什麼意思

(25) http和https的區別,由http公升級為https需要做哪些操作

(26) https的具體實現,怎麼確保安全性

(27) tcp三次握手時的第一次的seq序號是怎樣產生的 (位元組提前批)

(28) 乙個機器能夠使用的埠號上限是多少,為什麼?可以改變嗎?那如果想要用的埠超過這個限制怎麼辦?

(29) 對稱密碼和非對稱密碼體系

(30) 數字證書的了解(高頻)

(31) 伺服器出現大量close_wait的連線的原因以及解決方法

(33) 單條記錄高併發訪問的優化

(35) tcp/ip的粘包與避免介紹一下

(36) 說一下tcp的封包和拆包

(37) 乙個ip配置多個網域名稱,靠什麼識別?

(38) 伺服器攻擊(ddos攻擊)

(39)dns的工作過程和原理

(41)osa七層協議和五層協議,分別有哪些

(42)ip定址和mac定址有什麼不同,怎麼實現的

(1) 關係型和非關係型資料庫的區別(低頻)

(2) 什麼是非關係型資料庫(低頻)

(3) 說一下 mysql 執行一條查詢語句的內部執行過程?

(4) 資料庫的索引型別

(5) 說一下事務是怎麼實現的

(6) mysql怎麼建立索引,怎麼建立主鍵索引,怎麼刪除索引?

(7) 索引的優缺點,什麼時候使用索引,什麼時候不能使用索引(重點)

(8) 索引的底層實現(重點)

(9) b樹和b+樹的區別(重點)

(10) 索引最左字首/最左匹配

(11) mysql的優化(高頻,索引優化,效能優化)

(12) mysql資料庫引擎介紹,innodb和myisam的特點與區別

(13) 資料庫中事務的acid(四大特性都要能夠舉例說明,理解透徹,比如原子性和一致性的關聯,隔離性不好會出現的問題)

(14)什麼是髒讀,不可重複讀和幻讀?

(15) 資料庫的隔離級別,mysql和oracle的隔離級別分別是什麼(重點)

(16) 資料庫連線池的作用

(17) mysql的表空間方式,各自特點

(18) 分布式事務

(19) 資料庫的正規化

(20) 資料的鎖的種類,加鎖的方式

(21) 什麼是共享鎖和排他鎖

(22) 分庫分表的理解和簡介

(23)

(24)資料庫高併發的解決方案

(25)樂觀鎖與悲觀鎖解釋一下

(26)樂觀鎖與悲觀鎖是怎麼實現的

(27)對資料庫目前最新技術有什麼了解嗎

(1) linux的i/o模型介紹以及同步非同步阻塞非阻塞的區別(超級重要)

(2) 檔案系統的理解(ext4,xfs,btrfs)

(3) epoll的介紹和了解

(4) io復用的三種方法(select,poll,epoll)深入理解,包括三者區別,內部原理實現?

(5) epoll的et模式和lt模式(et的非阻塞)

(6) 查詢程序占用cpu的命令(注意要了解到used,buf,代表意義)

(7) linux的其他常見命令(kill,find,cp等等)

(8) shell指令碼用法

(9) 硬連線和軟連線的區別

(10) 檔案許可權怎麼看(rwx)

(11) 檔案的三種時間(mtime, atime,ctime),分別在什麼時候會改變

(12) linux監控網路頻寬的命令,檢視特定程序的占用網路資源情況命令

(13)linux中線程的同步方式有哪些?

(14)怎麼修改乙個檔案的許可權

(15)檢視檔案內容常用命令

(16)怎麼找出含有關鍵字的前後4行

(17)linux的gdb除錯

(18)coredump是什麼 怎麼才能coredump

(19)tcpdump常用命令

(20) crontab命令

(21) 檢視後台程序

(1) 程序與執行緒的區別和聯絡(重點)

(2) linux理論上最多可以建立多少個程序?乙個程序可以建立多少執行緒,和什麼有關

(4) 程序之間的通訊方法有哪幾種 (重點)

(5) 程序排程方法詳細介紹

(6) 程序的執行過程是什麼樣的,執行乙個程序需要做哪些工作?

(6) 作業系統的記憶體管理說一下

(7) 實現乙個lru演算法

(8) 死鎖產生的必要條件(怎麼檢測死鎖,解決死鎖問題)

(9) 死鎖的恢復

(10)什麼是飢餓

(11) 如果要你實現乙個mutex互斥鎖你要怎麼實現?

(12)執行緒之間的通訊方式有哪些? 程序之間的同步方式又哪些?

(13) 什麼時候用多程序,什麼時候用多執行緒

(14) 檔案讀寫使用的系統呼叫

(15) 孤兒程序和殭屍程序分別是什麼,怎麼形成的?

(16) 說一下pcb/說一下程序位址空間/

(17) 核心空間和使用者空間是怎樣區分的

(18) 多執行緒是如何同步的(尤其是如果專案中用到了多執行緒,很大可能會結合討論)

(19) 同乙個程序內的執行緒會共享什麼資源?

(20) 異常和中斷的區別

(21) 一般情況下在linux/windows平台下棧空間的大小

(22)虛擬記憶體的了解

(23)伺服器高併發的解決方案

(24)協程了解嗎(高頻)

(25)那協程的底層是怎麼實現的,怎麼使用協程?

(26)程序的狀態以及轉換圖

(27)在執行malloc申請記憶體的時候,作業系統是怎麼做的?/記憶體分配的原理說一下/malloc函式底層是怎麼實現的?/程序是怎麼分配記憶體的?

(28)什麼是位元組序?怎麼判斷是大端還是小端?有什麼用?

演算法面經細節(更新)

q 訓練神經網路的,什麼時候early stopping。vivo一面,掛 a 西瓜書 105頁 將資料分成訓練集和驗證集 validation set 訓練集用於計算梯度 更新連線權 w 和閾值 b 驗證集用於估計誤差。若訓練集誤差降低但驗證集誤差公升高,則停止訓練。同時返回具有最小驗證集誤差的w...

hldc面經總結

1.int32 a 1 設定bit3 2 清除bit3 3 獲取a的高八位的值和低八位的值 4 將資料存入高八位 解答 define bit3 0x1 3 static int a void set bit3 void void clear bit3 void include include cha...

網易面經總結

1.執行緒池的threadpoolexecutor的主要引數有哪些,詳細介紹了一下任務佇列 2.執行緒建立的幾種方式以及區別 3.hashmap的底層實現,以及1.7和1.8之間的區別 4.執行緒安全的容器有哪些 5.concurrenthashmap的底層實現原理,以及1.8是如何操作的 6.異常...