含淚寫下這篇面經:拒絕頭條,放棄華爲,6面字節跳動終拿Offer!年薪70w+!

前言

先說一下個人狀況,8月被導員通知優研資格沒有我,開始準備考上交819,9月華爲大規模秋招,第一批集招offer拿到,拒了,以後學姐給了白金碼,選擇放棄考研全力備戰字節面試,準備了一個月,10.13面試,三輪面完,10.19收到offer call秋招結束,在此期間拿到360和keep的offer,可是我都拒絕了,由於個人目標很明確!字節跳動,不面試上不罷休,其實騰訊,頭條待遇都不錯,可是年少輕狂,結果愣是面了9面纔拿到字節跳動offer!
含淚寫下這篇面經:拒絕頭條,放棄華爲,6面字節跳動終拿Offer!年薪70w+!
含淚寫下這篇面經:拒絕頭條,放棄華爲,6面字節跳動終拿Offer!年薪70w+!java

這篇文章就講一寫我9面字節跳動的面試經歷!android

個人字節跳動艱難面試之旅

一面(~45min)

1. 介紹項目,講述一下實習的工做內容和感想(~10min)git

2. 什麼是內存泄漏,Android裏有哪些內存泄漏的場景,緣由是什麼程序員

3. JVM的GC過程,GC的算法都有哪些github

4. 進程和線程的概念,Android裏怎樣實現多線程?(Thread  Handler  AsyncTask  IntentService等等)面試

5. Handler的原理和使用算法

6. Handler是怎麼和線程綁定的(Looper),爲何Looper.loop()要設計成死循環數組

7. Java的幾種內部類,區別是什麼緩存

8. Activity的生命週期和啓動模式微信

9. 寫題:二叉樹的右視圖(層序遍歷便可)

一面比較短,問的問題也比較基礎,大概30分鐘後開始二面

二面(~1h30min)

1. 自我介紹

2. 介紹項目,爲何要自學安卓(~5min)

3. Android如何實現多進程,應用場景是什麼(答的很差)

4. Android的IPC機制(Binder)是否瞭解(答的也很差)

5. 如何用兩個隊列(FIFO)實現棧(FILO)

6. HashMap和HashTable區別,HashMap原理和實現,hash()的算法

7. 若是本身設計hash算***怎麼設計,爲何(答的素數取餘)

8. String的hashCode()和Object的hashCode()

7. 虛擬內存和物理內存的概念和關係,內存分頁的調度算法

8. 怎麼實現LRU緩存(參考leetcode T146)

9. 能夠本身寫一個java.lang.Object類嗎,系統會加載哪個

10. Java裏泛型的實現

11. 瞭解常見排序算法嗎,手寫一下快排

12. Java里加鎖的方式,synchornized關鍵字的原理,悲觀鎖和樂觀鎖都有哪些實現

13. 死鎖的條件和解決方法,講講銀行家算法

14. TCP的三次握手四次揮手,爲何要四次揮手

15. TCP的流量控制算法(滑動窗口),擁塞控制算法

16. 怎麼解決用戶高頻點擊打開新Activity致使的多實例問題(Activity啓動模式)

17. 怎麼判斷兩個無環單鏈表是否相交

18. 寫題:leetcode 445

19. 反問

二面問題量很是的大,集中在Java/OS/算法,但並無特別難以回答的問題,認真準備的話大部分都能答出來。面試官也很是友好,給了不少引導和提示。

由於三面面試官的時間問題,約了兩天後的三面

三面(~45min)

1. 自我介紹

2. 介紹一下實習作的工做,是本身完成的嗎,遇到什麼困難,成果怎麼樣

3. RecyclerView怎麼實現的item緩存,跟ListView有什麼區別(由於項目用到了因此被問了)

4. 寫題:leetcode 1233

5. 設計題:微信的聯繫人列表功能

(1)設計添加聯繫人的API(從可能的方式,數據形式,接口參數方面回答)

(2)怎麼實現聯繫人列表的UI(答的RecyclerView)

(3)怎麼實現A-Z首字母的快速定位功能

6. 是自學的Android嗎,爲何選擇這個方向,有沒有什麼經驗給一樣想自學的學弟學妹

7. 是哪裏人,爲何想到上海來就業

8. 反問

三面的問題很少,不過由於多數問題沒有標準答案,難度其實高於一二面

四面(1小時14分)

主要問java,以及虛擬機,問了一點android
1.實習項目有關的介紹以及問題回答
2.反射與代理的區別,動態代理,靜態代理,兩者的區別,以及代理模式的UML圖
3.字節碼技術
4.虛擬機的雙親委派,以及好處
5.虛擬機棧的做用,以及什麼狀況下會發送Stack Overflow
6.誰能作GCRoot,爲何計數法不如可達性好
7.爲何要分新生代和老年代,如何區分
8.GC算法都介紹一下
9.類加載的過程,方法區中存的是什麼,類型信息都包括什麼,如何判斷兩個Class是否相等。
10.HashMap的put方法講一下,講一下如何擴容,講一下一個類做爲HashMap,要實現哪些方法,equals和hashCode有什麼區別和聯繫
11.消息機制講一下,講一下ThreadLoacal,講一下Handler處理信息有什麼方法(除了handleMessage還有什麼),MessageQueue是否有長度限制,android中Message多很少?
12.Activity A到Activity B跳轉的一個生命週期的過程
13.Activity A(standard模式)跳轉到B(單例模式),B再跳轉到A,此時返回,會出現什麼狀況
14.InVisible和Gone的區別,Gone和ViewStub的區別
15.字符串第一次出現一個的字符

五面(34分)

計算機網絡相關
1.osi七層架構,物理層作什麼的
2.輸入網址以後發生的一些列事情
3.DNS用了什麼協議,具體是怎麼作的
4.TCP的三次握手,以及流量控制
5.HTTP報文裏有什麼
6.HTTP與HTTPS有什麼區別,加密算法是什麼
7.HTTP的響應碼有哪些?
8.get與post的區別
9.兩個有序數組,找到中位數

六面(50分鐘)

深刻android方面以及實習經歷
1.實習項目有關(包括一些具體實現,以及一些關鍵問題)
2.LayoutManager的做用
3.RecyclerView用的多麼有哪些瞭解,如何去實現雙層瀑布
4.如何去設計一個SDK(不少細節的問題)
5.撲克牌,抽五張是同花的機率,抽五張是順子的機率
6.RN以及Redux的瞭解,好處,以及使用,以及工做中對於android和RN的比重
7.單例模式的好處,那麼何時不去用單例呢?
8.SP的內部實現瞭解麼?如何實現的序列化
9.瞭解注入麼?

字節跳動,一共面試了3次,一共六面,總算是拿到了Offer!

最後面試字節跳動的時候一個就是三面的面試官是我 leader,他當時問我,若是給你一個兩個星期才能作完的活,你想怎麼辦。我說,先跟您商量一下,表達一下本身的觀點,若是您堅持安排給我,我就加班唄。。。還能咋整。。。。直到作完唄。。。。他噗嗤一下就笑了。。。他問了我這個問題,我就知道他是 leader了。並且我以爲可能就是這個問題救了我。說實話我自己就是比較耿直的山東漢子,我以爲加班沒啥, leader也可能比較喜歡我這種耿直的,因此撈了我。很感謝本身的性格給了本身機會。

另外一個問題爲何要拒了華爲。其實華爲給我開的工資算不錯的了,除了hr讓我有點以爲本身被瞧不起了,主要的緣由是面試太水了,讓我以爲進去的人水平都不會很高,而後就不想去了....我一直堅信,只有在高水平的環境裏才能得到更大的成長。固然華爲仍是很強的,我很但願過幾年能跳華爲去。。。。

尾聲

改變人生,沒有什麼捷徑可言,這條路須要本身親自去走一走,只有深刻思考,不斷反思總結,保持學習的熱情,一步一步構建本身完整的知識體系,纔是最終的制勝之道,也是程序員應該承擔的使命。

以上進階大廠面試題以及系統學習資料能夠免費分享給你們,須要完整版的朋友,點這裏能夠看到所有內容

相關文章
相關標籤/搜索