1)tcp三次握手的過程,accept發生在三次握手哪個階段?
2)tcp流, udp的資料報,之間有什麼區別,為什麼tcp要叫做資料流?
3)const的含義及實現機制,比如:const int i,是怎麼做到i只可讀的?
4) valitale的含義。
5)offsetof(s, m)的巨集定義,s是結構型別,m是s的成員,求m在s中的偏移量。
#define offsetof(s,m) (size_t)&(((s *)0)->m)
比如:struct aaa
;struct aaa *paaa;
paaa=new aaa;
這時,paaa實際上是乙個pointer, 指向某一確定的記憶體位址,比如0x1234;
而 paaa->i 整體是乙個int型變數,其位址是&(paaa->i) ,'&'為取址運算子;
那麼&(paaa->i)一定等於0x1234,因為i是結構體aaa的第乙個元素。
而&(paaa->j)一定是0x1234 + 0x4 = 0x1238; 因為sizeof(int) = 4;
這個做法的巧妙之處就是:它把「0」作為上例中的paaa,那麼 &(paaa->j)就是j的
offset啦,
解析結果是:
(s *)0 ,將 0 強制轉換為pointer to "s"
可以記 ps = (s *)0 ,ps是指向s的指標,它的值是0;
那麼ps->m就是m這個元素了,而&(ps->m)就是m的位址,而在本例中就是offset啦
再把結果強制轉換為size_t型的就是啦。
6)100億個數,求最大的1萬個數,並說出
演算法的
時間複雜度。
7)設計乙個洗牌的演算法,並說出演算法的時間複雜度。
socket
在什麼情況下可讀?
--------------
1)三次握手之後
2)流無邊界,資料報有邊界.tcp是先進先出的,並且可靠.
3)編譯器相關,優化可能讓其直接轉為一常量代入.
4)volatile吧,告訴編譯器此處必須得從位址去取,不得作相關優化。千萬注意,這裡與硬體cache可不是一回事。
5)#define offsetof(s, m) () /*gcc*/
6)建乙個堆,先把最開始的1萬個數放進去。以後每進乙個,都把最小的趕出來。
7)產生2*54+rand()%2次交換,所有序列已經很接近平均分布(只要rand()滿足均分),並且比較快。否則會是複雜度比較高的演算法。我統計 過。
不知道想問什麼。
9)擁塞控制是把整體看成乙個處理物件的,流量控制是對單個的。感知的手段應該不少,比如在tcp協議裡,tcp報文的重傳本身就可以作為擁塞的依據。依 據這樣的原理,應該可以設計出很多手段。
9)流量控制與擁塞控制的區別,節點計算機怎樣感知網路擁塞了?
騰訊後台開發面試題
三面是總監面,本人不幸被拒了,這次面試沒有問 專案相關的問題,專案的問題是放在二面問的。三面給人的 感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之...
騰訊後台開發面試總結
linux和os netstat tcpdump ipcs ipcrm 如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 這四個命令的熟練掌握程度基本上能體現面試者實際開發和除錯程式的經驗 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網...
騰訊後台開發面試經驗
面試官簡單問了下工作地點的問題後,就直入主題了,沒問專案,全是程式設計基礎和演算法,感覺問題都是隨機的,從乙個問題根據你的回答深入到下乙個問題。1.static 使用與作用 2.inline 中斷 3.程序與儲存 4.棧的兩種指標,哎,才知道原來有個ebp是幀指標啊 5.殭屍程序的理解 6.awk,...