一面主要是針對項目來的,涉及裏面的一些技術,一般是你用到啥(在面試裏你說到啥),他就問啥。
但是某些方面的問題是不可避免的(一二面中均出現的)。
1.c++方向
1.1.虛函數
爲什麼要引入虛函數(虛函數的作用):實現多態 注:指向基類的指針在操作它的多態對象時,會依據對象的不同,調用相應的函數
防止多重繼承 純虛函數(怎麼聲明:=0)
1.2.struct和class的區別
1)字面上的區別(從定義角度) 2)成員權限上的區別 3)默認繼承方式 4)class可用來定義模板參數 注意:c++中的struct中可以寫方法,也可以繼承
2.網絡方向
2.1. tcp/udp
建立連接時三次握手:
:
斷開連接時四次握手:(注意二三次都是sever端發送的:第一次ACK是確認收到,第二次FIN表示可以關閉了,中間的那段時間可能server端還有未傳完的數據)
另外:tcp 與 udp 的區別
tcp | udp | |
是否連接 | 面向連接 | 面向非連接 |
是否可靠 | 可靠的 | 不可靠的 |
場合 | 傳輸大量數據 | 少量數據 |
速度 | 慢 | 快 |
我還被問到:怎麼用udp實現tcp 封裝一下udp? 或者從區別上考慮?
2.2.cookie和session
二者實現方式 應用情形
3.進程線程
3.1.基本概念
3.2多線程同步方式及其區別
3.3.Linux下進程間通信方式及其優缺點
3)報文隊列(消息隊列)
消息隊列 是消息的鏈接表,包括:Posix消息隊列、systemV消息隊列。
有足夠權限的進程可以向隊列中添加消息,被賦予讀權限的進程則可以讀走隊列中的消息
消息克服了信號承載信息量少,管道只能承載無格式字節流及緩衝區大小受限等缺點
4)共享內存
使得多個進程可以訪問同一塊內存空間,是最快的可用ipc形式。
是針對其他通信機制運行效率低而設計的。
往往與其他通信機制,如信號量結合使用,來達到進程間的同步和互斥
5)信號量
主要是作爲進程間以及同一進程不同線程之間的同步手段
6)套接口
更爲一般的進程間通信機制,可用於不同機器之間的進程間通信。
4.算法及設計
5.測試問題
5.1.我的筆記
Quality:meeting requirements&& fit for use Prevention & detection Verification 驗證 & validation 確認
SQA:1.testing :verify too late only good to test cases 2.software configuration management :discipline,softwaredevelopment,document control,problem tracking,changecontrol,maintenance 3.quality control :monitor,observe/requirement Reviews inspections of code/document checks for user deliverable
Non-execution-basedtesing:walkthrough、inspection、peer review
基於運行的缺點:太遲,只對用例有效,有些沒法測:文檔配置,規格說明等
Black-Box Testing