小米百度bigo 滴滴 快手等iOS 面試題2021年

面試過程

  • 在疫情期間都是遠程面試,下邊先介紹一下疫情期間面試的一些公司的面試情況。同時拿到了其中幾家的 offer。下邊介紹的面試題只還原了其中印象比較深的部分,會存在不足的情況,并不代表面試的全部。

小米

一面

  • 介紹有哪些設(shè)計原則,并讓比較詳細的說了其中開閉原則在項目中的應(yīng)用。
  • 介紹設(shè)計模式,然后其中主要問了我抽象工廠和適配器兩種模式。
  • 介紹 runloop 相關(guān)的知識和在實際開發(fā)中的使用情況
  • 要求詳細的描述事件響應(yīng)鏈

二面

  • 介紹過往的項目經(jīng)驗,因為曾經(jīng)的項目和所面試的部門崗位需求匹配度較高,所以這塊的時間占比較多。
  • 回文算法
  • (算法)判斷一個字符串是不是對稱的字符串,比如 abba 或者 aba 這樣的就是對稱的。
  • block 的實現(xiàn)原理
  • 比較詳細的介紹 https 的過程。
  • 過往開發(fā)中做過哪些優(yōu)化向的工作,問的也比較詳細。
  • 如何檢測項目中的卡頓問題(比如假死)
  • 比較詳細的介紹消息轉(zhuǎn)發(fā)流程和事件響應(yīng)鏈
  • GCD 的底層線程調(diào)度原理
  • 介紹 hash 算法的原理

三面

作為一個開發(fā)者,有一個學(xué)習(xí)的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:413038000,不管你是大牛還是小白都歡迎入駐 ,分享BAT,阿里面試題、面試經(jīng)驗,討論技術(shù), 大家一起交流學(xué)習(xí)成長!

推薦閱讀

iOS開發(fā)——最新 BAT面試題合集(持續(xù)更新中)

  • 一個二叉樹逐層打印的算法題

  • 介紹自己的過往的項目經(jīng)驗,會結(jié)合項目問一些架構(gòu)向的思考

  • 如果現(xiàn)在做一個新的網(wǎng)絡(luò)層框架,有哪些需要考量的點

  • 百度

  • 百度只有一面,因為面得是百度的商業(yè)化部門,對于細節(jié)的要求非常嚴(yán)格。個人感覺自己的表現(xiàn)確實不是很好。

  • 判斷一個字符串是不是 ipv6 地址(要求盡全力的考慮所有異常的情況)

  • PS:當(dāng)時面試官明確告訴我,這個面試題做不好,面試是直接結(jié)束的。

  • 介紹界面卡頓的優(yōu)化有哪些可以優(yōu)化的點。

  • 介紹 UIResponder 的繼承鏈。然后說事件響應(yīng)鏈。

Bigo

感覺面試的這些公司,Bigo 對于基礎(chǔ)的考察最全面。

一面

  • (算法)找出一個頁面中漏出部分面積最大的試圖,重合的部分按照最上層的面積算漏出,會有時間復(fù)雜度的要求。
  • 簡單地介紹的過往的項目經(jīng)驗
  • 控件的點擊事件和添加在上邊的手勢誰先響應(yīng),并說明原因
  • 談 CoreAnimation 和 CoreGraphic 的區(qū)別
  • 說 @synchronized 鎖的實現(xiàn)原理,并說明其中可能存在的問題。同時介紹了 iOS 開發(fā)中常見的鎖。
  • 介紹編譯的過程和原理
  • 談對于 bitcode 的理解和作用。
  • 詳細的介紹了 Https 的過程。

二面

  • 介紹屬性常用修飾符,介紹 assign 和 weak 之間的區(qū)別。這塊會延伸到內(nèi)存管理相關(guān),比如引用計數(shù)的方式。
  • 聊對于 GCD 的理解,和 GCD 底層是如何進行線程調(diào)度的。聊 GCD 中常見方法的使用 (group ,信號量
  • ,barrier 等)
  • 詳細的介紹了 KVC 和 KVO 的原理。
  • 介紹消息轉(zhuǎn)發(fā)過程
  • 介紹對于 Runloop 并介紹知道的應(yīng)用場景。再具體場景中會有追問。
  • 介紹項目優(yōu)化的經(jīng)驗,這一塊會聊的比較細。
  • 介紹對于靜態(tài)庫和動態(tài)庫的理解。
  • 在 webview 使用過程中存在的問題和解決方案。

三面

  • 介紹了過往 RN 的使用經(jīng)驗和對于 Flutter 的理解。
  • 談對于組件化的理解和市面上常見的組件化方案
  • 問了一些 APM 向上的問題。
  • 談個人對于項目架構(gòu)選擇的理解。自己如何進行架構(gòu)的選擇(主要對于 MVVM,MVC等,后文有個人對于這一塊的理解)
  • 談個人規(guī)劃

滴滴

一面

滴滴的一面分為兩部分。

  • 第一部分:過往項目經(jīng)驗,會對自己的過往項目經(jīng)驗,結(jié)合自己的描述,面試官問你介紹到的項目中涉及到問題,然后會據(jù)此引申出一些問題,這一部分占比比較大。
  • 第二部分是基礎(chǔ)知識面
  • 談屬性修飾符,如果 assign 修飾對象可能存在的問題和原因。
  • 比較的深入的聊了內(nèi)存管理的內(nèi)容,包含引用計數(shù)和 weak 修飾的對象的內(nèi)存管理的過程。問的會比較深入。
  • 講 runloop 的過往使用經(jīng)驗。
  • 介紹自己比較熟悉的三方庫的實現(xiàn)原理

二面

  • 對于鎖的理解(自旋鎖和互斥鎖),以及 iOS 開發(fā)中常見的鎖。同時要求介紹個人在開發(fā)過程中在哪些場景下用到過鎖。
  • 在實際開發(fā)中遇到過哪些多線程問題以及如何進行解決的。
  • 為什么不能在異步線程中更新頁面,介紹原因。
  • 對于內(nèi)存泄漏的了解,以及介紹知道的解決方案。
  • 一些優(yōu)化向上的問題,主要是根據(jù)自己介紹的優(yōu)化進行較為深入的追問。
  • 一個坦克從一個空間的起點到終點,中間在某些位置上有阻隔的情況下,判斷從起點到終點是否有可行路徑的算法題。

三面

  • 比較詳細的介紹之前的項目經(jīng)驗和主要負責(zé)的內(nèi)容
  • 介紹過往項目中最有挑戰(zhàn)的事情,并會據(jù)此深入的聊。
  • 介紹了一些架構(gòu)向的理解
  • 談個人規(guī)劃

快手

快手的一面是跨部門面試,二面是本部門面,所以一二面面試題會有一些重復(fù),只寫了一次。

一面

  • 介紹過往的項目經(jīng)驗
  • 兩個不算難的算法題(具體的忘記了...)
  • 聊了 assign 修飾對象可能存在的問題
  • 聊過往項目中的優(yōu)化經(jīng)驗
  • 介紹消息轉(zhuǎn)發(fā)流程

二面

  • 比較詳細的聊到的 block,深入的講了其中的實現(xiàn)原理,并介紹不同變量的引用方式。
  • 介紹開發(fā)中常見的循環(huán)引用,并說明其中的原因和解決的方案和原理。
  • 介紹 Runloop 并講應(yīng)用場景。
  • 二叉樹翻轉(zhuǎn)

三面

  • 一道多線程實際場景下的問題,要求遠程寫出實現(xiàn)方案的代碼
  • 聊對于 MVVM,MVC 和 MVP 的理解。
  • 介紹過往項目中 RN 的使用經(jīng)驗和遇到的問題。
  • 講如何將一張內(nèi)存極大的圖片可以像地圖一樣的加載出來(只說實現(xiàn)思路)
  • 聊對于組件化的理解,對于市面上的組件化方案的理解,優(yōu)劣分析等。

其他

  • 除了上邊介紹的公司外,還面了平安,51 talk,58 同城,好未來,美篇。
  • 因為絕大部分面試內(nèi)容和上邊的基本上只是重復(fù),只對差異性的面試題進行了總結(jié)。
  • 對圖像編解碼的了解
  • 在子線程中是如何進行內(nèi)存管理的JSBridge 是如何實現(xiàn)的,以及和原生的調(diào)用關(guān)系。
  • 問到了一些 AFNetworking 和 SDWebImage 相關(guān)的實際開發(fā)中的問題。

作為一個開發(fā)者,有一個學(xué)習(xí)的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:413038000,不管你是大牛還是小白都歡迎入駐 ,分享BAT,阿里面試題、面試經(jīng)驗,討論技術(shù), 大家一起交流學(xué)習(xí)成長!

推薦閱讀

iOS開發(fā)——最新 BAT面試題合集(持續(xù)更新中)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容