字節跳動安卓、測試開發實習生面試題和總結

字節跳動安卓、測試開發實習生面試題和總結

引言

本人大三,19年9月面了字節跳動的測試開發崗,2面技術面和1面hr面,面試都過了,面的平時的實習崗,想保研怕成績掉,選擇留在學校,拒offer。(傷心)
很幸運的是我的簡歷被內推到了其他部門,10月初字節安卓部門的hr給我打電話,願意給我寒假和暑假以及大四學期的實習機會,然後又面了字節的安卓部門。
剛剛安卓二面面完,感覺面的不太好,還需要加油吧,衝鴨!大家一起加油!
我應該還會發一篇我準備測開和安卓面試的知識點彙總和思維導圖,大家也可以關注下我 ?,鏈接我寫完了會放在這裏

短信

面試

我只記得一部分了,我可能是運氣比較好,面試難度比起其他人可能不算太難,大家隨意參考下就行。

測開一面

按時間順序:
1.自我介紹(我吹了一波項目背景、我做項目的思路和應用場景、項目具體應用價值)
2.算法 (思路+現場代碼實現)
(1)隨機紅包 輸入人數和總錢數,每個人搶紅包的時間不一樣,但是要實現搶紅包要公平,所有人要把紅包錢分完,要求對完成的代碼要求寫出測試用例,考察測試能力。
3.網絡
dns域名解析,TCP/IP協議,和應用層、傳輸層、網絡層、鏈路層這四層的考察。
真不記得了……

測開二面

1.自我介紹,介紹我自己的項目(還是講項目背景,這裏講了很久,面試官很感興趣,這可能是我面的那麼爛還過了的原因……)
2.算法
(1)扔球,有2個球,2個球都是碎了就不能用了,現在有一棟100樓的房子,1樓扔秋肯定不會碎,100樓扔球下來肯定碎了,問扔多少次一定能找到讓球碎的臨界點(一定要找到)。
(2)輸入數字n,然後再輸入n個字符串,2個字符串爲一類的標準是字母位置可以隨便亂動,其實就是隻要兩個字符的 字符類型數目和字符每個類型的字符個數相等就行,比如“aabbcc”“abacbc” "abaccb"他們都是一類。
判斷這n個字符串有多少類,又有多少個字符串屬於這每個類。
面試官還考了我如何測試我自己的代碼,寫什麼樣的測試用例。

安卓一面

1.算法
(1)實現一個最長升序子數組
(2)實現前n個最長的升序子數組,時間複雜度又是多少

2.網絡
(1)HTTP狀態碼,2,3,4,5開頭的我都說出來了,面試官還問了1開頭的狀態碼是代表什麼
(2)客戶機和服務器之間進行請求的方法,有什麼區別

3.Java數據結構
(1)hashmap的實現,並且如果內部鏈表過長怎麼辦
(2)jvm的內存機制,堆棧內存、程序計數器的作用,GC回收

安卓二面

安卓二面讓人難受,我太菜了,整整1個小時20分鐘的乾貨面試。
1.算法
輸入IP,判斷IP是否合法(必須用Java實現,難受……)
我利用正則表達式實現了,面試官要求求出時間複雜度。
面試官又要求,別的方法(我用的整除,要遍歷兩次)。結果面試官又要求最好只遍歷一遍。

2.java
(1)java異常
(2)LinkedHashMap
(3)GC的詳細流程
(4)如何創建線程,runnable創建的對象可以直接跑嗎?有幾種方法,線程池核心參數

3.安卓
(1)進程/線程之間通信
(2)異步消息處理機制、handler如何回調和消息傳遞機制切換、子線程如何通知主線程,主線程如何通知子線程
(3)重寫view的方法,怎麼實現的
(4)手機滑動界面是怎麼實現的
(面試官似乎都不屑於面四大組件、生命週期啥的……我哭了:( 我太難了)

4.個人問題
我能實習多久,大三寒假和暑假來實習能實習多久,如果大四還來實習,最起碼能保證幾個月(我說的大四最起碼5個月)

我覺得我掛了,等消息吧:(

總結

字節很看重算法,java數據結構,網絡和線程等……
我在算法的複雜度、線程的鎖、網絡方面還是學得不夠紮實,我還好菜,加油吧
如果你覺得對你面試有用,點個贊再走行嗎~
(共勉 ?)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章