做者:Xoper.ducky
連接:https://www.nowcoder.com/discuss/3043?type=2&order=0&pos=5&page=2
來源:牛客網
java
J2SE基礎 android
1. 九種基本數據類型的大小,以及他們的封裝類。 byte1 short2 int3 long4 double6 float4 char2 boolean1ios
2. Switch可否用string作參數?c++
3. equals與==的區別。git
4. Object有哪些公用方法? toString equal hashcode程序員
5. Java的四種引用,強弱軟虛,用到的場景。面試
強引用 例如new出來的 不管內存是否不足都不回收. 算法
弱 內存不足回收編程
軟 對象用完了就回收json
虛 隨時均可能回收
6. Hashcode的做用。
例如hashset 和hashmap 底層都是先經過hashcode計算 hash 值 而後決定在數組中的位置, 若是hash值相同再 經過equals方法來肯定是否相同
7. ArrayList、LinkedList、Vector的區別。
8. String、StringBuffer與StringBuilder的區別。
9. Map、Set、List、Queue、Stack的特色與用法。
10. HashMap和HashTable的區別。
11. HashMap和ConcurrentHashMap的區別,HashMap的底層源碼。
12. TreeMap、HashMap、LindedHashMap的區別。
13. Collection包結構,與Collections的區別。
14. try catch finally,try裏有return,finally還執行麼?try中和finally 中都有return 返回的是finally中的值
15. Excption與Error包結構。OOM你遇到過哪些狀況,SOF你遇到過哪些狀況。
16. Java面向對象的三個特徵與含義。
17. Override和Overload的含義去區別。
18. Interface與abstract類的區別。
19. Static class 與non static class的區別。
20. java多態的實現原理。
21. 實現多線程的兩種方法:Thread與Runable。
22. 線程同步的方法:sychronized、lock、reentrantLock等。
23. 鎖的等級:方法鎖、對象鎖、類鎖。
24. 寫出生產者消費者模式。
25. ThreadLocal的設計理念與做用。
26. ThreadPool用法與優點。
27. Concurrent包裏的其餘東西:ArrayBlockingQueue、CountDownLatch等等。
28. wait()和sleep()的區別。
29. foreach與正常for循環效率對比。
foreach 的效率高於for for能夠根據索引對單個數據操做
30. Java IO與NIO。
31. 反射的做用於原理。
32. 泛型經常使用特色,List<String>可否轉爲List<Object>。
33. 解析XML的幾種方式的原理與特色:DOM、SAX、PULL。 若是dom文件比較大 比較消耗內存.
sax是經過事件驅動逐行解析.
pull是安卓的解析方式
34. Java與C++對比。
35. Java1.7與1.8新特性。
36. 設計模式:單例、工廠、適配器、責任鏈、觀察者等等。
37. JNI的使用。
Java裏有不少很雜的東西,有時候須要你閱讀源碼,大多數可能書裏面講的不是太清楚,須要你在網上尋找答案。
推薦書籍:《java核心技術卷I》《Thinking in java》《java併發編程》《effictive java》《大話設計模式》
JVM
1. 內存模型以及分區,須要詳細到每一個區放什麼。
2. 堆裏面的分區:Eden,survival from to,老年代,各自的特色。
3. 對象建立方法,對象的內存分配,對象的訪問定位。
4. GC的兩種斷定方法:引用計數與引用鏈。
5. GC的三種收集方法:標記清除、標記整理、複製算法的原理與特色,分別用在什麼地方,若是讓你優化收集方法,有什麼思路?
6. GC收集器有哪些?CMS收集器與G1收集器的特色。
7. Minor GC與Full GC分別在何時發生?
8. 幾種經常使用的內存調試工具:jmap、jstack、jconsole。
9. 類加載的五個過程:加載、驗證、準備、解析、初始化。
10. 雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
11. 分派:靜態分派與動態分派。
JVM過去過來就問了這麼些問題,沒怎麼變,內存模型和GC算法這塊問得比較多,能夠在網上多找幾篇博客來看看。
推薦書籍:《深刻理解java虛擬機》
操做系統
1. 進程和線程的區別。
2. 死鎖的必要條件,怎麼處理死鎖。
3. Window內存管理方式:段存儲,頁存儲,段頁存儲。
4. 進程的幾種狀態。
5. IPC幾種通訊方式。
6. 什麼是虛擬內存。
7. 虛擬地址、邏輯地址、線性地址、物理地址的區別。
由於是作android的這一塊問得比較少一點,還有可能上我簡歷上沒有寫操做系統的緣由。
推薦書籍:《深刻理解現代操做系統》
TCP/IP
1. OSI與TCP/IP各層的結構與功能,都有哪些協議。
2. TCP與UDP的區別。
3. TCP報文結構。
4. TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的做用。
5. TCP擁塞控制。
6. TCP滑動窗口與回退N針協議。
7. Http的報文結構。
8. Http的狀態碼含義。
9. Http request的幾種類型。
10. Http1.1和Http1.0的區別
11. Http怎麼處理長鏈接。
12. Cookie與Session的做用於原理。
13. 電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。
14. Ping的整個過程。ICMP報文是什麼。
15. C/S模式下使用socket通訊,幾個關鍵函數。
16. IP地址分類。
17. 路由器與交換機區別。
網絡其實大致分爲兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,通常問題不大。
推薦書籍:《TCP/IP協議族》
數據結構與算法
1. 鏈表與數組。
2. 隊列和棧,出棧與入棧。
https://blog.csdn.net/hguisu/article/details/7674195
3. 鏈表的刪除、插入、反向。
4. 字符串操做。
5. Hash表的hash函數,衝突解決方法有哪些。
6. 各類排序:冒泡、選擇、插入、希爾、歸併、快排、堆排、桶排、基數的原理、平均時間複雜度、最壞時間複雜度、空間複雜度、是否穩定。
7. 快排的partition函數與歸併的Merge函數。
8. 對冒泡與快排的改進。
9. 二分查找,與變種二分查找。
10. 二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。
11. 二叉樹的前中後續遍歷:遞歸與非遞歸寫法,層序遍歷算法。
12. 圖的BFS與DFS算法,最小生成樹prim算法與最短路徑Dijkstra算法。
13. KMP算法。
14. 排列組合問題。
15. 動態規劃、貪心算法、分治算法。(通常不會問到)
16. 大數據處理:相似10億條數據找出最大的1000個數.........等等
算法的話實際上是個重點,由於最後都是要你寫代碼,因此算法仍是須要花很多時間準備,這裏有太多算法題,寫不全,個人建議是沒事多在OJ上刷刷題(牛客網、leetcode等),劍指offer上的算法要能理解並本身寫出來,編程之美也推薦看一看。
推薦書籍:《大話數據結構》《劍指offer》《編程之美》
3、 項目
關於項目,這部分每一個人的所作的項目不一樣,因此不能具體的講。項目再也不與好與很差,在於你會不會包裝,有時候一個很low的項目也能包裝成比較高大上的項目,多用一些專業名詞,突出關鍵字,能使面試官能比較容易抓住重點。在聊項目的過程當中,其實你的整個介紹應該是有一個大致的邏輯,這個時候是在考驗你的表達與敘述能力,因此好好準備很重要。
面試官喜歡問的問題無非就幾個點:
1. XXX(某個比較重要的點)是怎麼實現的?
2. 你在項目中遇到的最大的困難是什麼,怎麼解決的?
https://blog.csdn.net/zx_p24/article/details/72179967
3. 項目某個部分考慮的不夠全面,若是XXXX,你怎麼優化?
4. XXX(一個新功能)須要實現,你有什麼思路?
其實你應該可以預料到面試官要問的地方,請提早準備好,若是被問到沒有準備到的地方,也沒關係張,必定要說出本身的想法,對不對都不是關鍵,主要是有本身的想法,另外,你應該對你的項目總體框架和你作的部分足夠熟悉。
4、 其餘
你應該問的問題
面試裏,最後面完以後通常面試官都會問你,你有沒有什麼要問他的。其實這個問題是有考究的,問好了實際上是有加分的,通常不要問薪資,主要應該是:關於公司的、技術和自身成長的。
如下是我常問的幾個問題,若是須要能夠參考:
1. 貴公司一貫以XXX著稱,能不能說明一下公司這方面的特色?
2. 貴公司XXX業務發展很好,這是公司發展的重點麼?
3. 對技術和業務怎麼看?
4. 貴公司通常的團隊是多大,幾我的負責一個產品或者業務?
5. 貴公司的開發中是否會使用到一些最新技術?
6. 對新人有沒有什麼培訓,會不會安排導師?
7. 對Full Stack怎麼看?
8. 你以爲我有哪些須要提升的地方?
https://blog.csdn.net/dmeveryday/article/details/52942923
知識面
除了基礎外,你還應該對其餘領域的知識有多少有所涉獵。對於你所熟悉的領域,你須要多瞭解一點新技術與科技前沿,你才能和麪試官談笑風生。
軟實力
什麼是軟實力,就是你的人際交往、靈活應變能力,在面試過程當中,良好的禮節、流暢的表達、積極的交流其實都是很是重要的。不少公司可能不光看你的技術水平怎麼樣,而更看重的是你這我的怎麼樣的。因此在面試過程當中,請保持誠信、積極、樂觀、幽默,這樣更容易獲得公司青睞。
不少時候咱們都會遇到一個狀況,就是面試官的問題我不會,這時候大多數狀況下不要立刻說我不會,要懂得牽引,例如面試官問我C++的多態原理,我不懂,但我知道java的,哪我能夠向面試官解釋說我知道java的,相似的這種能夠往相關的地方遷移(可是須要注意的是必定不要不懂裝懂,被拆穿了是很尷尬的),意思就是你要儘量的展現本身,表現出你的主動性,向面試官推銷本身。
還有就是遇到智力題的時候,不要什麼都不說,面試官其實不是在看你的答案,而是在看你的邏輯思惟,你只要說出你本身的看法,有必定的思考過程就行。
5、 面經
LZ應聘的職位都是android客戶端開發。
面經其實說來話長,包括實習的話面過的公司有:CVTE、騰訊、阿里、百度、網易、蘑菇街、小米。最先得追溯到到今年3月份,那時候剛過完年,而後阿里的實習內推就開始了,我基本都沒什麼準備,就突如其來的接到了人生中第一個面試電話。
阿里實習內推一面: 電話面試, 因爲是第一次面試,因此很是緊張,項目都沒怎麼說清楚。而後面試官就開始問項目細節了,這裏我關於一個項目細節和麪試官有不一樣的見解,面試官說我這樣作有問題,而後我說咱們確實是這樣作的,並無出什麼錯,差點和麪試官吵起來,最後我仍是妥協了。而後問了我一個怎麼對傳輸的數據加密,我答的很挫,而後面試官就開始鄙視我:你這個基礎很差,那個基礎很差,那你說說你還有其餘什麼優點沒?Blabla緊張的說了一些…………只面了30分鐘不到,而後妥妥的就掛了。
通過此次面試忽然感受人生的艱辛,幾天後咱們教研室的其餘同窗陸續開始了面試,他們都很順利,其中個人室友(單程車票)很順利的拿到了offer,他是個大神,而後我就壓力無比的大。制定了整套複習計劃,從早上9點看書看到晚上10點。
到了3月15號左右有CVTE面試,第一次面試是羣面,比較坑,坐了一個小時的車過去羣面了5分鐘,沒什麼好說的。
CVTE實習面 :在自我介紹和項目後,面試官開始問一些java基礎,object有哪些方法?這個還能說了一些。問hashmap有多大,這個當時一臉茫然,還sb的答了一個65535。而後面試官讓我寫三分鐘內寫一個二分查找,當時也是第一次手寫代碼,而且還計時,徹底沒經驗,最後超時寫了出來。中間又問了我一堆基礎,都答得不是很完整。最後問我遇到過OOM的狀況沒有,什麼狀況下會OOM。這個也沒答出來,而後又妥妥的掛了。
此次經歷告訴我,我是缺乏面試經驗,和現場寫代碼的能力,基礎還須要多增強。因此我開始各類準備,在一個月的時間裏看了四本面試書(程序員面試寶典、java程序員面試寶典、程序員面試筆試寶典、劍指offer),把全部關於數據結構和算法的東西用代碼寫了一遍。
而後到了四月初,騰訊來了,我最開始仍是很是嚮往騰訊的,但就當時那個狀況,我對本身不報太大但願,以爲能進BAT這樣的頂級公司是個奢侈的夢想。
騰訊的面試是在一個5星級酒店裏面,逼格高大上,感受問的東西也比較多,感受喜歡問智力題,可是我沒遇到。
騰訊實習1面: 50分鐘左右, 面試的時候仍是有些緊張的,可是運氣好,遇到了一個學校的師兄,他一直叫我沒關係張。幾個比較關鍵的問題:死鎖的必要條件,怎麼解決,java和c++比有什麼優點,java同步方法,activity生命週期,中間讓我設計了個銀行排隊系統,我說了一堆。而後讓我寫了一個計算一個int裏面二進制有幾個1,而後我用最高效的方法(n=n&n-1)寫出來以後,面試官有點意外,還說沒見過這麼寫的,讓我跟他解釋一下。後面就是拉拉家常,問我對工做地點怎麼看,讓我對比qq和微信,一面出來以後,面試官讓我留意通知,心想是過了,其實發揮的不怎麼好。
就在會學校的路上,都要到學校了,收到了騰訊二面的通知,下午3點。而後我又跑回去二面。
騰訊實習2面: 二面是一個很嚴肅的人,看上去就比較資深那種,一直都不笑,後面才知道是手機管家T4的專家。一開始就問我項目裏,心跳包是怎麼設計的,我項目裏並無用心跳,而後只能跟他說沒作,問我用json傳輸數據有什麼很差(我只知道用哪想過有什麼很差)。又問了http和socket的區別,兩個協議哪一個更高效一點,遇到過java內存泄露沒有,用過哪些調試java內存工具,java四種引用。多數都是項目上的東西,基礎的東西沒問太多,而後感受本身答的不是很好,不少都不知道,並且還答錯了。其實我感受我應該是過不了的,可是最後我問問題的時候,我讓他評價下個人表現,他說很差評價,我本身說了一堆,說在學校裏確實見識到的東西比較少,不少東西沒考慮全面,而後他表示贊同,和我探討了一番,我以爲最後這個問題給我加了很多分。二面也面了50分鐘左右。
回來後發現個人狀態一直沒變,而他們二面完了的都到了HR面了,我覺得我已經掛定了,後來在一天晚上12點的時候,驚喜的收到了次日HR面的短信,當晚上幾乎高興得一夜沒睡着覺。
騰訊實習3面(HR): 就是hr面,也就面了十幾分鍾,聊聊天,問問哪的人,將來什麼打算的等等,基本不怎麼掛人就不詳細寫了。
就這樣拿到了人生中第一個實習offer。
後面找實習的心就放鬆了,沒有複習了。而後到了5月5號,阿里來了。對阿里也只是想去面一面的心態了,由於已經有騰訊的offer了,就沒想太多。
阿里實習1面: 面過騰訊以後發現本身已經比較淡定了,面試得時候可以比較好的交談了。這一面也遇到一個比較好的面試官,能很輕鬆的和他交流。主要的問題是android的:activity的生命週期、activity的四種啓動模式(當時忘了一些沒答全)、線性佈局和相對佈局、多線程請求,java GC算法與GC方法,內存模型,有一個比較特別的問題是問我微信的朋友圈怎麼設計,而後我把思路跟他說了,其餘的就是問了項目相關的了。還問了我一個以爲技術深度重要仍是技術寬度重要,一面感受仍是比較基礎的。
阿里實習2面: 這一面就比較虐心,碰到一個阿里雲的CTO,一上去項目看都不看,直接問我寫過多少行代碼,我說至少三、4萬行,而後他讓我寫了兩個題:一個找素數,一個遞歸求階層,對我也算手下留情(他後來讓我同窗寫AVL樹的插入算法,想一想也是醉了)。後面就各類基礎了,java的基礎挨個問了一遍,比較關鍵多線程實現,鎖的幾種等級等,反射的用法,wait()和sleep()(討論這個的時候他把我說暈了),Java還好,多數能應付,而後他就開始問c++的了。雖然是基礎,可是lz忘了差很少了,什麼指針數組和數組指針,虛函數,多態實現(這個我扯到java上了)等等,問了不少,不少都沒答上來,而後他說我基礎不太好(我想說我簡歷上寫的瞭解C++,爲何要追着我問TT)。
就這樣出來了,原本覺得掛了,後面被通知過了。同窗都只有2面技術面,我竟然多了一面,叫交叉面試,心想這下確定完了。
阿里實習3面: 這一面遇到了後面我去實習時候的部門boss,人很是好,來的時候走的時候都要和我握手,很是的平易近人。這一面仍是問項目上的一些東西居多,基礎就問了個java多線程,各個排序的時間複雜度、思想。技術問了半個小時,後面半個小時就開始各類聊人生了(@_@),我家是哪的,父母幹嗎的,中學怎麼樣,大學怎麼樣,等等,徹底就不像是技術面嘛(後來才知道,我一個同窗一開始來就和他聊人生,還聊過了。再次感嘆找工做是看緣分吶)。
阿里實習4面(HR) :阿里hr比騰訊hr面專業,面了一個小時,把個人生活經歷趴了一遍,(問了相似你的優缺點,最讓你高興的一件事,最讓你傷心的一件事,你的職業規劃,你的理想等等,這種,如今想不起來了)也沒什麼特別好說的。
面完後次日去圓桌籤offer,就這樣又拿到了阿里的實習offer。
LZ後面衡量了杭州阿里B2B和廣州騰訊MIG,最後選擇去了阿里,由於在總部,感受大boss人比較好,發展前途可能不錯,並且留下來的概率比較大,而騰訊是一個分部門,感受可能不是頗有前景(可是後來瞭解到其實廣州騰訊MIG發展前景很是好,環境也很是和諧,我同窗去實習的都留下來了。哎,只能感嘆選擇是個大問題)。在阿里實習的兩個月時間也挺愉快的,學到了很多東西,也認識了很好的師兄和主管,只因最後被擁抱了變化沒有拿到正式offer。
實習面經就已經寫完了,後面是正式找工做的經歷,主要是內推比較多:騰訊、網易、蘑菇街、小米,校招就面了家百度。
在阿里實習的時候,面了網易和蘑菇街。
網易面試是我面了這麼多中,問得最專業的了。
網易內推1面: 電話面,一天在裏中午休息的時候面的。這一面我面得很爛,因爲在阿里實習,面試官剛好也在阿里呆過,問了我在阿里學到了哪些東西,看過哪些框架,看過源碼沒有,我支支吾吾說了一些,面試官不太滿意(我表示我都說不全啊,在阿里就來了不久,哪那麼多時間看源碼)。項目各類細節問一通以後,開始問基礎,Http報文結構,Handler、Looper模型,ThreadLocal(這個LZ當時沒答上來),怎麼使service不被殺死,android內存優化,本身實現線程隊列模型,問我怎麼設計(這個當時被前面的問題問蒙了,直接說不知道了),面了20+分鐘,感受答得都不怎麼好,而後面試官問我說還有沒有什麼比較擅長的他沒有問道的,我就把android Framework裏zygote的啓動和Binder通訊說了一遍(這裏強行裝了一次逼)。
面完以後本覺得掛定了,而後師姐跟我說竟然過了,也是夠神奇,我以爲是我後面補充的內容救了我。
網易內推2面: 二面是現場面,就在阿里濱江區的隔壁。時間是一天中午,吃了飯就到了隔壁。面試官是個比較年輕人,可能大不了我幾歲,也是很是好說話,開始也是聊項目,我把在阿里作的app和本身寫的小框架拿出來,他就指着上面各類問,這裏怎麼實現,會有什麼問題,你怎麼解決,而後他描述了一個場景說,兩個activity,前面的是個dialog activity,怎麼在dialog activity存在的狀況下改變後面的activity(lz答的用廣播)。android怎麼解決緩存,要是內存超了怎麼辦?而後扯到了JVM,GC斷定算法與方法,哪一個區域用什麼GC算法,怎麼改進複製算法。而後是基礎,也像一面同樣問了一些,hashmap和concurrntHashmap的區別、泛型可否強制轉換。而後是算法,問了快排和歸併的平均時間複雜度與最差時間複雜度,出了個算法題:怎麼找到一個隨機數組的前50大數、中間50大數,(這個用最小堆和partition函數),複雜度是多少。
面完以後其實感受還不錯,基本都打答上來了,順利進入三面。
網易內推3面(HR): hr面也是現場,也聊了不少,問我爲何要從阿里來網易,有什麼打算,你看中網易的什麼(主要是針對我是在阿里實習來問的,我就講了一堆網易的優點),讓來杭州工做願不肯意。還跟我說了,此次內推是優中選優,有名額限制,若是沒有經過,請繼續關注網易校招。
後面讓師姐查了下狀態,狀態顯示是三面已經過。可是最後沒有收到offer,仍是有點小失望。
蘑菇街面試感受比較基礎,沒有什麼技術難度。
蘑菇街內推1面: 電話面,也是在一箇中午面的。18分鐘,問了一些項目,主要是問基礎、問得很是基礎:Arraylist與LinkedList區別,String與StringBuffer用法,HashMap與HashTable區別,Synchronized用法等等等等(很是基礎),這不一一列舉了,而後很順利的就過了。
2面是在20天后了,也不知道蘑菇街出了什麼岔子。
蘑菇街內推2面 :也是電話面,CTO面試,就總體聊了項目,我在項目中學到了什麼,遇到什麼困難怎麼解決的,在阿里實習學到了哪些東西,有看過源碼麼,個人優缺點,我爲何選擇蘑菇街,我瞭解蘑菇街哪些東西。最後答完感受本身答得還行可是也沒有過,不知道爲何。
小米是投的內推精英計劃,50個名額,解決北京戶口。
小米內推1面: 電話面,大概40分鐘,面試的時候那邊很吵,不過幸虧面試官語速慢,並且我答完一個問題後,面試官會和我交流哪裏沒有答好。沒有問項目,就問了基礎,問題也很少:HashMap刪除元素的方法,for each和正常for的用在不一樣數據結構(ArrayList、set、hashmap)上的效率區別(LZ表示沒有看過源碼,不知道),static class和non-static class的區別,一個大文件幾個GB,怎麼實現複製(這個也沒有答好)。而後問了兩個算法:以前一個出現過,另外一個是在git裏面,若是有n個分支,m次commit怎麼找到任意兩個節點共同的那個父節點(這個當時我想錯了,想到二叉樹上去了,沒有答好)。而後讓兩個算法用代碼實現,1個小時內寫好email給他。
小米麪了之後也杳無音信,估計也是要求很高,畢竟解決北京戶口。
其實在阿里實習的時候很早就開始投簡歷了,由於出去實習一段時間後,感受仍是很想留在成都(由於lz是四川人)。騰訊我沒有參加校招面試,直接走的內推流程。
騰訊1面: 電話面,7月20+號,很水,就問了項目,聊了可能有十多分鐘,而後面試官說,內推沒有什麼做用,仍是要走校招面試(我以爲他多是有其餘事情,想節省時間),你在實習不能回來,仍是要現場面一次才行,而後就留了個電話讓我校招聯繫他,這樣就完了。
2面是在我回學校後了。
騰訊2面: 9月6號我回學校以後,下午3點接到電話,讓我晚上7點去騰訊現場面的(我在想爲什麼是在晚上,lz學校到騰訊要2個小時,還讓不讓人回來了),當時緊張得要死,由於剛從阿里回來不久,都沒怎麼好好準備基礎,在地鐵上看了兩本基礎書,亞歷山大。面試是在騰訊裏面,微信部門,面試官是個中年人(如今是LZ的主管),看起來仍是比較沉穩的那種。也沒問基礎技術問題,就聊項目細節和一些可優化的地方,而後把lz的簡歷看了翻了一遍,問了一遍,而後就是問我在阿里學到了什麼,爲何當時選擇了阿里(這時候確定要各類跪舔啊)。而後後來他說他是作ios的,我在想難怪不問我基礎。
面完了說一週以內通知我結果,也沒報太大但願,感受並不太對口,由於搞不懂爲何是作ios的來面我。
兩天以後,在阿里HRG電話通知我擁抱變化以後,幾乎同一時間,騰訊電話通知我拿到了成都offer,我只能感嘆太巧了(大概這大半輩子的運氣都花光了)。
後來校招開始後,只面了百度一家公司,百度確實比較重視基礎與算法,看中技術。
百度1面: 大概1個小時,又是個作ios的師兄面試我,天然就只能聊項目了,我給他展現了我作的app後,也問了些技術問題,緩存怎麼作的,內存溢出怎麼處理。而後兩個算法題:把一個數組中奇數放前面,偶數放後面,這個要求寫出來。另外一個是3億條IP中,怎麼找到次數出現最多的5000條IP。最後問了是否願意去北京,對於技術的見解。
百度2面: 50分鐘,寫個4個程序題:反轉鏈表、冒泡排序、生產者消費者,這三個都還好寫,很快的寫出來了,還有一個題是在一組排序數中,給定一個數,返回最接近且不大於這個數的位置,要求時間在O(logn)(這個想了一會,用二分查找,而後特殊處理了一下),最後他看不懂,要我一步一步解釋。花了好一整子,最後問了個java反射,就讓我走了。百度果真是重視算法。
百度3面: 這一面應該是個技術高層,籠統的問了我一下項目的問題,而後問了幾個基礎:java反射機制;android動畫有哪些,什麼特色?TCP/IP層次架構,每層的做用與協議;TCP擁塞控制;滑動窗口是怎麼設計的,有什麼好處;android的佈局都有哪些。問完這些以後,而後就是有點相似於HR的聊天了:若是此次面試過了你以爲是由於什麼緣由,沒過呢?你以爲百度怎麼樣?你對技術路線什麼打算?有些和前面重複的就不寫了。而後他讓我問他問題,我就連續問了五、6個問題,最後愉快的走了。
百度這兩天給結果。
6、 寫在最後
關於選擇
LZ當時實習的時候,杭州阿里和廣州騰訊選擇去了阿里,可是卻由於擁抱變化沒有留下來,相反這邊在騰訊實習的同窗卻很順利。可是也是由於沒有去廣州騰訊,最後我能留在成都騰訊。選擇是一件很是重要的事情,它決定着你的將來,可是也有一點你得知道:因禍得福焉知非福,如今看起來不太好的選擇,不必定未來就好,將來有太多未知數。
心懷感恩
其實一路走來,我也是在成長,從最初的不自信,到了最後面試一切都比較冷靜與沉着。我一直相信,機會是留給有準備的人,因此,請提前準備,越早越好。我很感激能有那麼多人幫助我和確定我,沒有最初騰訊的確定,我確定不會走的這麼順利,因此我很感恩哪些讓我經過的人,也感謝咱們實驗室的兄弟姐妹,給了我良好的學習成長環境,心懷感恩才能好運常在。
找工做其實就像是一場戰役,前面咱們經歷了高考或者考研,如今是找工做,你不在這個時候搏一搏,怎麼對得起你以前的努力。不要擔憂找不到好工做,你要相信: