Android面試題持續更新:面試大廠請收好這份釘釘和抖音的面經!

今天分享下釘釘遠程面試經歷的一個分享和一些心得,希望對大家能夠有所幫助。

阿里巴巴 -- 釘釘部門

阿里釘釘一面(面試時長80min)

  1. 自我介紹,對自己項目的介紹,架構圖呈現
  2. 因爲說自己以後的發展方向是音視頻,所以問了我用過哪些現有框架
  3. 項目中的一些優化問題,MVC -> MVP,Handler的內存泄漏情況分析等,對MVP和MVVM的理解。
  4. 項目中的第三方庫選擇的問題,因爲簡歷中寫了我對第三方庫選擇的問題,比如選ObjectBox和greenDao的問題,圖片加載框架問題
  5. HashMap和HashTable,引申ConCurrentHashmap的深入,version1.7和1,8的區別,以及高併發下HashMap發生的問題
  6. 四大啓動模式,以及場景對應
  7. Handler的機制介紹,不存在消息時的IdleHandler的運作機制,爲什麼不能在子線程初始化問題
  8. 設計模式中的單例介紹,使用場景(Okhttp的Seesion存儲等等),在線編寫
  9. 快排算法
  10. OkHttp的源碼分析,及整體架構的流程圖繪製
  11. 四大組件的完整介紹,及深入,答了IntentService、LocalBroadcast
  12. 四大引用的問題和MVP框架相結合進行回答
  13. 網絡中的響應碼對大體進行回答,具體回答了200、404、500、304等
  14. View繪製流程問題,如何不使用xml,來實現中間位置的定位
  15. 事件分發機制流程講解,以及如何實現單擊事件和長按事件的判定
  16. 關於爲什麼選用mqtt協議的問題,優勢,原理等等(沒答上來,只說針對性做過測壓,以及oceanlink和mqtt的對比)

阿里釘釘二面(面試時長30min)

  1. 自我介紹,優缺點的,以及未來希望的發展方向
  2. 目整體介紹,如何做到分壓啊之類的問題
  3. 如果給我阿里、騰訊、頭條、谷歌的offer的一個選擇(不摻雜地域性的問題),首先直接否定了google我就的一個企業的商業模式進行分析。
  4. 我對釘釘這個產品的理解,我的回答是就的是釘釘前身的對標項目微信,已經後期轉型的商業模式作出的分析,最後給出的我的結論是一個企業性質的辦公軟件
  5. 給出了釘釘一個mac平臺的關於共享屏幕的耗CPU的問題
  6. 讓我提問,提的是關於音視頻發展方向的問題,具體是一個發展空間。

阿里釘釘三面(面試時長60min,有概率通,要等hr)

  1. 自我介紹唄,還是一樣,項目介紹,項目的優缺點對比
  2. 對MVC和MVP的理解,還有Handler的內存泄漏問題具體是什麼,解決方案知道有什麼,空數據的時候Handler的阻塞問題,但是我還是沒在Looper的源碼中找到,這裏讓我好好再看一下。
  3. 另外爲什麼使用MVP,他的優勢是什麼,內存泄漏是什麼樣的。
  4. http的長連接和短連接這兩個概念,怎麼去理解。我把它理解爲持久化連接是什麼,然後對http的3個版本的主要區別做一個介紹
  5. http一整個流程,什麼Baidu.com輸入,經過了什麼。比較簡單的問題了,必答內容DNS、TCP的三次握手、四次揮手,當然我再答一些IP路由、鏈路還有物理層的內容
  6. RecyclerView的一個複用機制,和ListView的一個區別在哪裏
  7. HashMap、ConcurrentHashMap、Hashtable的問題,數據結構,線程安全啊之類的問題了,當然還是考了version 1.7和1.8。
  8. 一個app的啓動流程,冷啓動和熱啓動,我說底層我不太瞭解,只知道會有AMS去調一些東西,但是具體內容不知道,後面就是一些初始化和Activitiy生命週期問題了。
  9. 一到算法題三值之和求目標值,沒寫暴力,因爲大家都會寫,但是浪費了很多時間,剛開始是通過二值求和的方式,但是想做成O(n),其實不太可能,後面改成了O(n^2)

字節跳動 -- 抖音部門

字節抖音一面(面試時長50min)

  1. 接口和抽象的理解
  2. 進程和線程的理解
  3. 各種單例創建的理解,以及DCL的同步機制爲什麼這麼做,其他的設計模式知道的,以及應用場景。
  4. MVP和MVVM的理解,P層它主要做什麼工作,你如何實現的M、V、P三層的通信。
  5. Handler的工作流程,Handler能否在子線程初始化以及用什麼方案來替代Handler的在子線程初始化。
  6. JVM的組成成分,以及你對四大引用的理解
  7. 四大啓動模式的啓動方式以及場景分析,如過一個按鈕對應頁面跳轉,如何點多次只進行一次跳轉,兩種方式回答
  8. 對http和https的理解
  9. Broadcast和LocalBroadcast他的一個區別
  10. Static變量他的用處是什麼,具體應用場景。
  11. 一道兩個鏈表的相加問題。思路+僞碼實現(這裏和阿里不一樣,因爲是牛客的平臺,其實編碼體驗沒有特別好,面試官讓我用僞碼來實現思路就可以了)

字節抖音二面(面試時長70min)

  1. 先自我介紹,問項目,老樣子的MVP、MVC的理解,Handler中的內存泄漏
  2. 重點要講Handler的內存泄漏,爲什麼會引起內存泄漏?(源碼角度分析)解決方案有哪些?(說了三種)
  3. 爲什麼我的庫中的MVP要基於範型實現,實現思路,還有泛形擦除(主要說了公共邏輯抽離這一塊的內容)
  4. 對View自定義的一個瞭解
  5. 基於對網盤的理解,讓我分析上傳、下載這兩塊的內容,讓我來做,會做什麼樣的處理,啓發內容見下文:
  6. 關於上傳方面:定時上傳和立刻上傳兩方面的分析,針對的是數據量的大小
  7. 關於下載方面:線程安全(voliate / sync),線程池的使用,參數理解等等,斷點重傳的問題,應該怎麼去進行實現。
  8. 還有整個的如果Activity突然斷了,或者被kill了,如何對數據或者下載的位置進行保存
  9. ButterKnife原理實現
  10. 一道深度遍歷和公共節點尋找的題(給出了複雜度極高的方案,面試官給了好的方案,但是問題停留在了公共節點尋找)

字節抖音三面(面試時長70min,有概率通,要等hr)

  1. 問了項目架構,覺得項目有什麼樣可以升級的地方
  2. 泛型擦除,通配符的問題,主要做了extends和super的回答
  3. 從哪裏瞭解的objectBox,和greenDao相比覺得他有什麼樣的優點,性能有進行過測試嘛(只看過官方數據),圖像加載框架的選用。
  4. 從內存泄漏問題推倒到jvm的深層次問題,可達性分析的GC Root有什麼,虛擬機棧和堆的關係,方法是怎麼實現的。
  5. 問我覺得自己的優勢是什麼,說了我對一些框架的理解
  6. KotlinFlutter的一個瞭解程度的理解,還有爲什麼學習的一個現實原因,和學習方法。
  7. 數學題了,類似於斐波那契數列,但是關係式還沒推倒出來。
  8. 用循環的方式去實現一個先序遍歷,說的一些方案不用寫代碼。

以上就是釘釘和抖音的面試經歷,如果有什麼我沒有思考到的地方或是文章內存在錯誤,歡迎與我分享。

最後

今天分享的面試題就到這裏,還是那句話,有些東西你不僅要懂,而且要能夠很好地表達出來,能夠讓面試官認可你的理解,例如Handler機制,這個是面試必問之題。有些晦澀的點,或許它只活在面試當中,實際工作當中你壓根不會用到它,但是你要知道它是什麼東西。

不管怎麼樣,不論是什麼樣的大小面試,要想不被面試官虐的不要不要的,只有刷爆面試題題做好全面的準備,當然除了這個還需要在平時把自己的基礎打紮實,這樣不論面試官怎麼樣一個知識點裏往死裏鑿,你也能應付如流啊~

最後這裏是關於我自己的Android 學習,面試文檔,視頻收集大整理,有興趣的夥伴們可以看看~

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