面試技巧,面試總結4
面試技巧,面試總結4
1)tcp三次握手的過程,accept發生在三次握手哪個階段?
2)Tcp流, udp的數據報,之間有什么區別,為什么TCP要叫做數據流?
3)const的含義及實現機制,比如:const int i,是怎么做到i只可讀的?
4) valitale的含義。
5)OFFSETOF(s, m)的宏定義,s是結構類型,m是s的成員,求m在s中的偏移量。
6)100億個數,求最大的1萬個數,并說出算法的時間復雜度。
7)設計一個洗牌的算法,并說出算法的時間復雜度。
?socket在什么情況下可讀?
9)流量控制與擁塞控制的區別,節點計算機怎樣感知網絡擁塞了?
1)三次握手之后
第一次握手:客戶端發送syn包(syn=j)到服務器。?
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個ASK包(ask=k)。?
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1)。?
三次握手完成后,客戶端和服務器就建立了tcp連接。這時可以調用accept函數獲得此連接。
2)tcp是數據流,udp是數據報,流無邊界,數據報有邊界.TCP是先進先出的,并且可靠.
3)編譯器相關,優化可能讓其直接轉為一常量代入.(編譯期間完成,可以用常數直接替換)
4)volatile吧,告訴編譯器此處必須得從地址去取,不得作相關優化。千萬注意,這里與硬件cache可不是一回事。
5)#define OFFSETOF(s, m) ({s s1;(void*)(&s1)-(void*)(&s1->m);}) /*gcc*/
#define OFFSETOF(s, m)?? ((size_t)&(((s*)0)->m))
6)建一個堆,先把最開始的1萬個數放進去。以后每進一個,都把最小的趕出來。(考慮存儲空間的限制)
7)產生2*54+rand()%2次交換,所有序列已經很接近平均分布(只要rand()滿足均分),并且比較快。否則會是復雜度比較高的算法。我統計過。
不知道想問什么。
9)擁塞控制是把整體看成一個處理對象的,流量控制是對單個的。感知的手段應該不少,比如在TCP協議里,TCP報文的重傳本身就可以作為擁塞的依據。依據這樣的原理,應該可以設計出很多手段。(流量控制:控制連接的兩端發送數據不要太快;
擁塞控制:控制連接所經過的路由器別超負荷;
感知擁塞應該是受到了ICMP抑制報文)
第8個問題就是在議協層來說,比如當緩沖區數據達到一定數量socket就可讀了,除此之外還有對方把鏈接關閉了也可讀。
這份面試題是我在網上收集到的,是C++的,本人是搞Java的,C++以前也稍微接觸過,在這里我稍微總結一下這份面試題,供需要的人參考。
電話面試題目:
1. 異步通信和同步通信的區別?
同步通信與異步通信區別:
???1.同步通信要求接收端時鐘頻率和發送端時鐘頻率一致,發送端發送連續的比特流;異步通信時不要求接收端時鐘和發送端時鐘同步,發送端發送完一個字節后,可經過任意長的時間間隔再發送下一個字節。
??? 2.同步通信效率高;異步通信效率較低。
??? 3.同步通信較復雜,雙方時鐘的允許誤差較小;異步通信簡單,雙方時鐘可允許一定誤差。
??? 4.同步通信可用于點對多點;異步通信只適用于點對點。
2. TCP協議的作用?三次握手是通過什么方法來保證通信雙方確認的正確?
? TCP提供的可靠數據傳輸服務,是依靠接收端TCP軟件按序號對收到的數據分組進行逐一確認實現的。這個過程在TCP收發端開始通信時,被稱為三次握手初始化。
三次握手過程:
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;?
???????第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;?
???????第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
3. 操作系統執行可執行程序時,內存分配是怎樣的?
一個由c/C++編譯的程序占用的內存分為以下幾個部分
1、棧區(stack)—?由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
2、堆區(heap)—?一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
3、全局區(靜態區)(static)—全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域,未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。?-?程序結束后有系統釋放
4、文字常量區?—常量字符串就是放在這里的。程序結束后由系統釋放
5、程序代碼區(text)—存放函數體的二進制代碼。
4. 引用和多態的區別?
答:引用就是某一變量(目標)的一個別名,對引用的操作與對變量直接操作完全一樣。
多態是允許你將父對象設置成和它一個或更多的子對象相等的技術,賦值之后, 父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單地說就是一句話,允許將子類類型的指針賦值給父類型的指針。多態在C++中是通過虛函數實現的。
5. 堆和棧的區別?
答:stack的空間由操作系統自動分配/釋放,heap上的空間需要手動分配/釋放
棧的空間有限,堆是很大的自由存儲區。
程序在編譯期對變量和函數分配內存都在棧上進行,且程序運行過程中函數調用參數的傳遞也在棧上進行。
6. 進程之間通信的方式有哪些?
答:信號、信號量、消息隊列、共享內存。
7. 面向對象的三個特征,分別有什么作用?
答:封裝:封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。
??????? 繼承:繼承是指這樣一種能力:它可以使用現有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展
? 多態:多態性(?polymorphisn?)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。
實現多態,有二種方式,覆蓋,重載。
8. 虛函數的實現機制
答:
9. 如何判斷一棵樹是平衡二叉樹
答:如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那么它就是一棵平衡二叉樹。
?
10.sizeof在計算變量所占空間大小時采取的機制
答:
11.結構體struct和聯合體union的區別
答:??共用體
構造數據類型,也叫聯合體
用途:使幾個不同類型的變量共占一段內存(相互覆蓋)
結構體是一種構造數據類型
用途:把不同類型的數據組合成一個整體-------自定義數據類型
Structure 與 Union主要有以下區別:
1. struct和union都是由多個不同的數據類型成員組成, 但在任何同一時刻, union中只存放了一個被選中的成員, 而struct的所有成員都存在。在struct中,各成員都占有自己的內存空間,它們是同時存在的。一個struct變量的總長度等于所有成員長度之和。在Union中,所有成員不能同時占用它的內存空間,它們不能同時存在。Union變量的長度等于最長的成員的長度。
2. 對于union的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對于struct的不同成員賦值是互不影響的。
12.目前效率最好的內部排序是什么
答:歸并排序:最差、平均、最好都是O(nlog2n)
各種排序方法對比:

?
?
?
?
?
?
?
一面題目:(因為比別人多了一個電話面試,所以一面的問題不再只是純技術方面的)
1. 簡單自我介紹(主要講自己的特長、性格特點、優缺點)
答:自己發揮吧這個。
2. 大學期間自己做過的最成功的一件事
答:我覺得自己在大學最成功的事就是參加了傳智播客在我們學校舉辦的第一屆軟件開發大賽,我自己從參賽到實現作品,最后獲得獎項的整個過程讓我都回味無窮。自己付出很多努力,那也是我學習Android做的第一個項目,整個過程自己遇到很多問題,都是自己慢慢的耐心地去解決的,最后也不枉費我花的心機,所以覺得這件事我做得蠻成功的。
3. 如果遇到一個以前完全沒接觸過的技術,會怎么去學習
答:首先我會先去收集資料,看看這個技術需要些什么,看如何怎么讓自己快速入門。是否有視頻教程或者比較好的書籍能讓我對這個陌生的技術有比較好的認識的,如果有的話就制定相應的學習計劃。
4. 接下來的學習計劃是什么
答:我接下來的學習計劃是項目驅動學習,先去了解最新的技術動態,學習把最新的技術整合到自己的項目當中去,在整合項目之前,我會嘗試去做相應的Demo去實現效果,學習它實現的原理和機制。
5. 覺得大學里最難學的課程是什么
答:算法分析與設計
我覺得這門課比較難學的原因是這門課需要我們比較好的邏輯分析能力,或者要有比較好的數學功底才能學好。
6. 如何統計深圳市便利店的數目,說思路
答:說實在我沒啥思路。
7. 如果你一個人在一間偏僻且設備簡陋的酒店,某天晚上很晚,你突然想吃燒烤,你會怎么做?(旁邊沒有燒烤店,旅館也沒有工具,你住的地方離有燒烤店的地方很遠,而且你也不知道怎么去,貿貿然出去可能會有危險,你會采取什么方法讓自己可以安全地吃到燒烤)
答:自己想
8. 重載和覆蓋的區別是什么
答:
1、方法的覆蓋是子類和父類之間的關系,是垂直關系;方法的重載是同一個類中方法之間的關系,是水平關系。
2、覆蓋只能由一個方法,或只能由一對方法產生關系;方法的重載是多個方法之間的關系。
3、覆蓋要求參數列表相同;重載要求參數列表不同。
4、覆蓋關系中,調用那個方法體,是根據對象的類型(對象對應存儲空間類型)來決定;重載關系,是根據調用時的實參表與形參表來選擇方法體的。
?
9.MySQL數據庫中,如何查看一個表的表結構,如何查看其主鍵(說出查看的命令)
答:desc 表名
show fields from dbname;
10.數據庫的讀臟活存放數據庫的磁盤出現災難性事故,有什么方法可以避免
答:使用并發控制技術的封鎖技術可以避免讀數據的不一致。
11. 現場手寫代碼,實現一個雙向循環鏈表的增刪查操作
答:
typedef structDNode
{
??? ElemType data;
struct DNode *prior, *next;
}DNode, * DoubleList;
插入操作:
intDlinkIns(DoubleList L, int i, ElemType e)
{
?DNode *s, *p;
s=(DNode*) malloc(sizeof(DNode));
if(s)
{
??? s->data = e;
s->prior =p->prior; p->prior->next = s;
s->next= p;p->prior=s;
return TRUE;
}
?????? else
?????? returnFALSE;
}
?
刪除操作:
intDlinkDel(DoubleList L, int i, ElemType *e)
{
DNode *p;
*e = p->data;
p->prior->next= p->next;
p->next->prior=p->prior;
free(p);
return TRUE;
}
?
?
二面題目:
1. 簡單自我介紹
答:自由發揮。
2. C++和Java的區別,JVM是什么,具體用來做什么
答:我覺得C++與Java最大的區別是在于內存管理上,C++的內存管理是需要程序員自己控制的,自己開了需要自己去釋放。然而Java提供了JVM,JVM就是用來進行內存管理的,不需要程序員自己手動開關。
Java呢,摒棄了C++很多復雜的特性,比如指針、多繼承、操作符重載等等,相對來說Java的編程學習入門比較容易。
3. 圖像處理中位圖BMP的格式是怎樣的(這個是針對我的圖像識別項目來的)
答:這個不清楚,面試官會根據你的項目來問相關的問題,能準備的是好好復習自己所做過的項目。
4. Windows編程的知識點,如消息機制,一個自定義消息如何實現
答:?自定義消息共分為3步驟:
1)? 自定義消息:#defineWM_MYMSGWM_USER+1
2)? 在頭文件中聲明函數:??????afx_msg voidonMyMsg();
3) 在消息映射中添加對應關系:
//BEGIN_MESSAGE_MAP(CDefMsgDemoDlg,CDialog)//END_MESSAGE_MAP()
ON_MESSAGE(WM_MYMSG,onMyMsg)
4)定義函數void onMyMsg();
核心即:函數原型、關聯消息與消息響應函數的宏、函數實現。
5. 簡單介紹一下Java中的集合框架(有哪些類構成和包括哪些接口)
答:
集合框架:用來表示和操作的統一的架構,包含了實現集合的接口與類
由上圖可知,所有Collection是上級接口,接口List、Queue、Set接口都繼承與它
實現List接口的類有ArrayList、LinkList
實現Queue接口的類有LinkList
實現Set接口的類有HashSet、SortedSet
Map也是一個接口,實現它的類有HashMap、SortedMap
6. 如果是自己為一個類寫一個sizeof函數,應該考慮哪些問題
答:
7. 虛函數和虛繼承對于一個類求sizeof的影響有什么差別
答:
8. 說一下為什么覺得自己適合做開發
答:首先我對編程就有很大的興趣,興趣是最好的老師。我本人有較好的語言基礎并且具備去做開發的職業技能。我個人在平時學習工作中都比較耐心,有較好的抗壓能力,這是做開發必備的素質。興趣+能力+素質,我想這三點就能讓我可以認為自己適合做開發。
9. 求最大子串和,說思路
答:含義:從元素i開始,到元素j為止的所有的元素構成的子段有多個,這些子段中的子段和最大的那個。
那么:
q??????如果:b[j-1]>0, 那么b[j]=b[j-1]+a[j]
q??????如果:b[j-1]<=0,那么b[j]=a[j]
這樣,顯然,我們要求的最大子段和,是b[j]數組中最大的那個元素。
int MaxSubSum(int n, int *a)
{
????int sum=0, b=0;
????for (int i=1;i<=n; i++)
????{
????????if (b>0) b+=a[i];
????????else b=a[i];
????????if (b>sum) sum=b;
????}
????return sum;
}
10. Linux后臺開發問題(表示沒接觸過,題目沒聽懂,囧)
答:不知道問什么問題,無法總結
今年騰訊出手確實很早,足足比阿里校招實習生面試早了一個月(當然排除內推的)。我報的上海IEG后臺開發,下面就來講講自己的實習面試經歷。
?????? 3.22號騰訊在nd筆試,還好在市區,屁顛屁顛和同學都去了,之前看過騰訊的實習生招聘題目,感覺是很難的,不過這次選擇題確沒有歷屆那么難,倒是很基礎,題型和之前差不多,不過沒有填空題了。題目就不說了,簽保密協議了。考的范圍包括c++,數據結構、概率、網絡、redis、ios開發、java等等比較多,不知道什么原因,怎么可能都會呢?或許不同方向他們會選擇對應方向的題目來算吧。
?????? 一面:在面試的前一天,有幾個同學收到短信了,直到晚上睡覺前都沒有收到短信通知,但是我很確定的是我只有幾道沒學過的知識沒做,其他的基本沒錯,因為自己沒把握的題目和同學對了下答案,而且都是對的。我不相信自己面試的機會都沒有,終于第二天接到短信了說電話面試。過了半個小時,廣州深圳打來了電話進行面試,很奇怪為什么我是電話面試,而且是深圳的(因為之前我說過我不去深圳了)。面試題目可以分享一下:先是問的項目,接著問了如下幾道題目1.鏈表判斷環路和查找連接點;2.兩個棧實現隊列,如何實現多線程并發;3.兩個串任意合并是否可以成為第三個串。(參考:http://www.cnblogs.com/yu-chao/archive/2012/02/26/2369052.html)。
?????? 二面:當天晚上查微信狀態變成了復試中,知道自己過了,晚上收到短信說后天早上9點半準時面試。中間問了一下其他二面后臺問題,感覺不簡單,是壓力面啊。有幾道題目分享一下,值得玩味:1.linux內核態和用戶態,為什么要這么分?2.多重繼承為什么會含有多個虛表指針而不是一個?3.tcp和udp的區別,tcp是怎么做錯誤處理的?4.讀文件時系統和硬盤會做哪些工作。5.select、poll和epoll。供大家參考吧。去面試的當天,差點睡過頭,急忙起來吃飯去了xjk,還好我到的時候才9點,面試官還沒到。在那等了一會,9點20左右,HR叫到了我的名字,叫我去6號臺面試。面試官看上去挺好的。首先自我介紹,同學問的問題基本上都沒有問我,不過下面面了我將近兩個小時,兩個小時。。。。直到11點15才結束,當時我一看時間都嚇尿了,一座就兩個小時,我怎么一點都沒有發覺。好了我講重點分享經歷給大家:1.談項目細節,問的比較深,改進什么的,多并發一類處理,總之往大數據上靠,你怎么解決。2.寫兩段代碼,一個是打印九九乘法表(簡單,主要考代碼風格吧),另一個是socket服務端接收代碼(這個寫的不好,主要考IO阻塞的、問了同步異步)。3.問了文件系統4.主要三個服務器方面的問題:a.從接收包,解包,提內容,存數據庫期間會出現哪些異常,怎么解決;b.服務器宕機,為什么客戶端還是可以工作,實現模型(加額外路由器進行管理);c.怎么實現多服務器負載均衡。
面試技巧,?????? 三面:面試完二面,面試官就告訴我去hr那告訴他你過了,下午繼續面試。Hr告訴我等到2點半可以面試,因為之前已經排滿了,之后我說學校近就回學校了。下午4點hr發短信問我還在xjk附近嗎?現在能不能來面試?我就說40分鐘內可以到的。他說好等我。問了一些無傷大雅的問題。就是家庭情況、實習地點、最大優點、最驕傲的事情、和同學導師的關系、掙第一個月的錢怎么花等等。HR面很輕松,HR也很友好。
總結:1.騰訊筆試題目很重要,要把基礎打牢,考一個高分,面試很加分(因為我一個同學一面二面基本沒聊技術輕輕松松的過關了,不是報的后臺)。
??????? 2.做一個你值得驕傲的項目,而且要準備的很充分,各種你想到的細節你都準備一下,尤其算法細節、代碼細節等等。
??????? 3.面試很重要,要好好回答面試官的問題,會就說不會你就老實一點,可以引導到你擅長的領域中去,不止于過于尷尬,最后千萬不能冷場,冷場很危險!
?
?????? 最后,自己報的上海IEG后臺開發,最后給了TEG深圳的Offer,有點奇怪,之前接到電話說過去上海的,難到還有調劑?這個就不知道了,聽說一面的人就是你的leader,這樣我就不奇怪是調劑了,可能是在面試之前就已經分好了方向。所以,最后,我可能去阿里云,杭州還是不錯的。
面試問題、????? 此文僅筆者個人觀點,不妥之處見諒。寫此文供大家參考,共勉!祝大家找到心儀的工作。
面的騰訊后臺C++,面試地點西安,事業群選的無意向。 之后兩面技術面的面試官全都是QQ瀏覽器的面試官。 前天一面面的很順利,二面直接面跪了,今天早上通知下去的HR面
之前內推的時候面的微信支付,直接面跪了,這次學乖了,簡歷上事業群選的無意向
一面面的很短
1.去了先介紹介紹項目,然后就讓你對項目的架構讓你進行闡述,這個說了很久
面試總結500字,2.說說你常用的庫
3.說說你常用的數據結構
大量的樹會退化成什么?
紅黑樹的性質,旋轉、插入、刪除操作
哈希表解決沖突的方法及優缺點
如何設計好的散列函數
面試的總結怎么寫。說說后綴樹
4.linux
linux下如何查看cpu使用率
用過哪些API
5.網絡
TCP下Socket程序設計框架
工作面試自我介紹,time_wait狀態產生的原因,危害及避免
6.C++
空類默認生成哪些成員函數
什么是多態
動態綁定的實現
內存泄漏原因及如何避免
面試最佳自我介紹?7.程序設計
手寫程序:兩個大量無序無重復數組,篩出其中相同元素
解法:(1)哈希,時間復雜度低 (2)直接排序,空間復雜度低
然后聊了聊還面試了哪些公司,其他公司的面試題……
還給我介紹了學習經驗,讓多關注關注數據挖掘和機器學習
當場直接給我說過了,讓我準備二面
面試自我介紹模板。
第二天下午,二面的電話就直接打來了,被狠狠打擊了
上來直接問項目經驗
自己認為做的最好的項目是什么?
我就給他講了講自己做的http web server
然后問如何處理多線程并發
面試、如果發生crash怎么解決
如何查看錯誤日志
介紹下linux上的權限
top命令能顯示什么
用過STL嗎,知道里面的內部實現嗎
看過linux內核源碼嗎? 我回答沒有,然后噩夢開始了
面試總結報告怎么寫?linux文件讀取經過哪些過程?在內核源碼中怎么實現(問了很多關于內核和源碼的東西直接懵逼了,記不起來了)
如何打印當前工作目錄路徑,知道這個命令存放在哪嗎
后來安慰了我兩句,問了問愿不愿意來深圳,讓我多注重實踐
我問他過沒過,他說讓我、、消息,我心里就有點慌了
今天早上,微信查詢顯示HR面,下午就去了一面的那個酒店
面試后的個人總結、我一進房間,一看是個挺年輕的男面試官,挺開朗的
然后就開始了
做個簡單的自我介紹吧
知道你被分到哪個事業群了嗎
知道以后實習的地點了嗎
因為我在學校創建了一個社團,他就讓我介紹介紹 這個說了很久
面試心得體會、同學,朋友和老師對你的評價
你認為QQ瀏覽器有哪些特點呢
你認為BAT的發展方向有什么不同呢
說說你之前的實習或者面試經驗
談談你的博客吧
有沒有女朋友
面試需要準備什么。如果讓你做管理方面的事情,你愿意嗎
你是如何看待深圳這個地方的
你是如何看待騰訊的企業文化的
如果7月份開始實習,你會不會擁有什么不方便
最后提問環節
問了問實習生伙食 他說有食堂
面試總結和面試感想?問了問騰訊需要的人才,除了技術,精神品質比較注重什么 他說是學習能力
問了問實習生住宿問題 他說、、七月來了深圳,開頭幾天幫著找住房,公司有補貼,但具體多少不知道
問他當HR多久了 他說光干HR就6年了 ?我感到很驚訝,因為我覺得他很年輕 ? 他后來告訴我說,頭發白了,他給染黑了=-=
我這個人比較喜歡聊天,和他聊了整整一個多小時
最后他把我送到了房間門口,叫我、、消息,我感覺他人挺不錯
面試后的總結,【騰訊一面】SNG后臺 面經
作者:ZKKZKK
樓主西安的,C++方向,本科大三
先來了個自我介紹,我說我是那個學校的,學的計算機專業,就這兩句
然后就是一連串算法代碼題(除了讓用shell寫的那個,剩下的全寫出來了)
1.strlen的常規寫法 和 遞歸寫法
個人面試后的感想,2.strcpy 和strncpy 的代碼和區別, 這里你要說本質區別,就是strcpy不安全,有可能cpy越界
3.快速排序和復雜度 代碼
4.一個文本文件,包含很多字符串,要求用偽代碼求出 每個字符串出現的次數 我用的 STL里的map實現的
這個題完了 面試官 要求我用shell腳本實現,我只說了先用sort排個序,然后后面不會了
5.現在要求你實現一個內存池,結構體怎么定義。 我就把操作系統有次實驗課 老師讓寫首次適應算法 ?那個結構體改了下 寫給他了
6.字符串“abc de fgh”反轉為 "hgf ed cba" ? :沒辦法,誰讓我刷過牛客網的題,不會做的同學趕緊面壁去,答案不說了。 復雜度是o(n);
面試工作總結。C++:
1.多態 概念和實現方式: ?編譯時多態和運行時多態,說出來就行了
2.STL容器 map的底層結構 紅黑樹 ?查找復雜度 lgn
3.多態中 ?父類析構函數可以設成虛函數,這是為了防止那種情況發生,可能造成什么后果:用父類指針 new一個子類對象,釋放父類對象不會釋放子類對象 有可能造成內存泄露
為什么構造函數不能設成虛函數:因為多態分編譯時多態和運行時多態,父類設成虛構造函數,編譯時無法確定父類的具體 類型,所以會報錯
網絡:
個人面試總結簡短?1.tcp 連接全過程,要求畫圖并標明兩端狀態和具體發送的字段 也就是三次握手 ?和四次揮手狀態圖
2.time_wait是什么,產生在 tcp連接那一端,為什么要有,如果沒有的話 什么危害:答案估計大家都背的爛透了 我就不BB了
3.time_wait時間大概是多少:具體時間是4-6分鐘,也就是2個報文最長生存時間
4.滑動窗口協議 的概念
5,阻塞控制中,阻塞窗口大小怎么動態變化的:具體的分兩種情況說就行:一個是慢啟動 一個是快重傳,大家看下課本,這個要畫圖文字說不清
數據庫和操作系統:
沒有問,我也很郁悶,周圍的人都有涉及,我這兩方面都沒問,但是這兩個全都是重點
shell:
估計這位面試官shell懂得多,問了好多shell腳本問題,一個沒答上來,就是算法題提到的那個
還有一個shell腳本,讓我統計現在TCP連接 time_wait 狀態的連接數:我說用netstat -nat 然后重定向到grep中 搜索time_wait就行了
面的騰訊后臺C++,面試地點西安,事業群選的無意向。之后兩面技術面的面試官都是QQ瀏覽器的面試官。前天一面面的很順利,二面直接面跪了,今天早上通知下去的HR面。
之前內推的時候面的微信支付,直接面跪了,這次學乖了,簡歷上事業群選的無意向。一面面的很短。
1.去了先介紹介紹項目,然后就讓你對項目的架構讓你進行闡述,這個說了很久
2.說說你常用的庫
3.說說你常用的數據結構
大量的樹會退化成什么?
紅黑樹的性質,旋轉、插入、刪除操作
哈希表解決沖突的方法及優缺點
如何設計好的散列函數
說說后綴樹
4.linux
linux下如何查看cpu使用率
用過哪些API
5.網絡
TCP下Socket程序設計框架
time_wait狀態產生的原因,危害及避免
6.C++
空類默認生成哪些成員函數
什么是多態
動態綁定的實現
內存泄漏原因及如何避免
7.程序設計
手寫程序:兩個大量無序無重復數組,篩出其中相同元素
解法:(1)哈希,時間復雜度低 (2)直接排序,空間復雜度低
然后聊了聊還面試了哪些公司,其他公司的面試題……
還給我介紹了學習經驗,讓多關注關注數據挖掘和機器學習
當場直接給我說過了,讓我準備二面
第二天下午,二面的電話就直接打來了,被狠狠打擊了。
上來直接問項目經驗。
自己認為做的最好的項目是什么?
我就給他講了講自己做的http web server
然后問如何處理多線程并發
如果發生crash怎么解決
如何查看錯誤日志
介紹下linux上的權限
top命令能顯示什么
用過STL嗎,知道里面的內部實現嗎
看過linux內核源碼嗎? 我回答沒有,然后噩夢開始了
linux文件讀取經過哪些過程?在內核源碼中怎么實現(問了很多關于內核和源碼的東西直接懵逼了,記不起來了)
如何打印當前工作目錄路徑,知道這個命令存放在哪嗎
后來安慰了我兩句,問了問愿不愿意來深圳,讓我多注重實踐
我問他過沒過,他說讓我等消息,我心里就有點慌了
今天早上,微信查詢顯示HR面,下午就去了一面的那個酒店
我一進房間,一看是個挺年輕的男面試官,挺開朗的
然后就開始了
做個簡單的自我介紹吧
知道你被分到哪個事業群了嗎
知道以后實習的地點了嗎
因為我在學校創建了一個社團,他就讓我介紹介紹 這個說了很久
同學,朋友和老師對你的評價
你認為QQ瀏覽器有哪些特點呢
你認為BAT的發展方向有什么不同呢
說說你之前的實習或者面試經驗
談談你的博客吧
有沒有女朋友
如果讓你做管理方面的事情,你愿意嗎
你是如何看待深圳這個地方的
你是如何看待騰訊的企業文化的
如果7月份開始實習,你會不會有什么不方便
最后提問環節
問了問實習生伙食 他說有食堂
問了問騰訊需要的人才,除了技術,精神品質比較注重什么 他說是學習能力
問了問實習生住宿問題 他說等七月來了深圳,開頭幾天幫著找住房,公司有補貼,但具體多少不知道
問他當HR多久了 他說光干HR就6年了??我感到很驚訝,因為我覺得他很年輕? ?他后來告訴我說,頭發白了,他給染黑了=-=
我這個人比較喜歡聊天,和他聊了整整一個多小時
最后他把我送到了房間門口,叫我等消息,我感覺他人挺不錯
網絡問題列表
1、http/https有什么區別?
2、tcp的三次握手和四次揮手?3、tcp和udp的區別?
4、user-agent的作用?
算法基礎問題列表
1、深度優先遍歷和廣度優先遍歷的區別?
2、手寫一個二叉搜索樹?
3、手寫一個堆排序?
4、手寫一個快速排序?5、手寫一個歸并排序?
6、手寫一個選擇排序?7、手寫一個插入排序?
8、手寫一個冒泡排序?
9、各個排序的時間復雜度和空間復雜度以及穩定性?
設計模式問題列表
1、23種設計模式分別是什么?
2、MVC模式?
3、MVP和MVVM模式?
android基礎問題1、handler機制
2、activity、fragment、service的生命周期
3、android中事件分發傳遞機制
4、在android中跨進程通信有幾種方式
5、四大組件
6、android各版本sdk差別
7、夜間模式怎么實現
8、app如何進行性能優化
9、android6.0的權限
10、activity的啟動模式
11、自定義view的實現過程
12、RXjava的使用
13、解析json用Gson還是用fastjson
14、google推出的集合工具類guava
15、service和thread的區別
16、Android機型適配
17、activity和fragment的通信
18、自定義view的開發流程
19、熱修復
java基礎問題
1、餓漢式單例和懶漢式單例,懶漢式的單例有什么需要注意的地方?
2、String、StringBuffer、StringBuilder的區別?
3、手寫一個生產者消費者模型?4、多線程方面你都知道哪些類?
5、靜態代碼塊、成員代碼塊、靜態函數、構造函數、成員函數的執行順序?
6、java中有哪些常用的集合框架,有什么區別?7、強引用、軟引用、弱引用、虛引用的區別?
8、Java內存泄漏的產生和避免?
9、java的垃圾回收機制原理?
10、虛擬機原理?