前言:最近應(yīng)該有很多小伙伴去跳槽面試的吧垦垂,相信各位有的已經(jīng)順利收到offer了宦搬,而有些則是碰壁了,那么我在這里給大家準(zhǔn)備了相關(guān)面試資料劫拗,還有相關(guān)算法資料间校。想了解的可找我拿
面試過程
- 在疫情期間都是遠(yuǎn)程面試,下邊先介紹一下疫情期間面試的一些公司的面試情況页慷。同時(shí)拿到了其中幾家的 offer憔足。下邊介紹的面試題只還原了其中印象比較深的部分,會(huì)存在不足的情況酒繁,并不代表面試的全部滓彰。
小米
一面
- 介紹有哪些設(shè)計(jì)原則,并讓比較詳細(xì)的說了其中開閉原則在項(xiàng)目中的應(yīng)用州袒。
- 介紹設(shè)計(jì)模式揭绑,然后其中主要問了我抽象工廠和適配器兩種模式。
- 介紹 runloop 相關(guān)的知識(shí)和在實(shí)際開發(fā)中的使用情況
- 要求詳細(xì)的描述事件響應(yīng)鏈
二面
- 介紹過往的項(xiàng)目經(jīng)驗(yàn)郎哭,因?yàn)樵?jīng)的項(xiàng)目和所面試的部門崗位需求匹配度較高洗做,所以這塊的時(shí)間占比較多。
- 回文算法
- (算法)判斷一個(gè)字符串是不是對(duì)稱的字符串彰居,比如 abba 或者 aba 這樣的就是對(duì)稱的诚纸。
- block 的實(shí)現(xiàn)原理
- 比較詳細(xì)的介紹 https 的過程。
- 過往開發(fā)中做過哪些優(yōu)化向的工作陈惰,問的也比較詳細(xì)畦徘。
- 如何檢測項(xiàng)目中的卡頓問題(比如假死)
- 比較詳細(xì)的介紹消息轉(zhuǎn)發(fā)流程和事件響應(yīng)鏈
- GCD 的底層線程調(diào)度原理
- 介紹 hash 算法的原理
三面
- 一個(gè)二叉樹逐層打印的算法題
- 介紹自己的過往的項(xiàng)目經(jīng)驗(yàn)毕籽,會(huì)結(jié)合項(xiàng)目問一些架構(gòu)向的思考
- 如果現(xiàn)在做一個(gè)新的網(wǎng)絡(luò)層框架,有哪些需要考量的點(diǎn)
- 百度
- 百度只有一面井辆,因?yàn)槊娴檬前俣鹊纳虡I(yè)化部門关筒,對(duì)于細(xì)節(jié)的要求非常嚴(yán)格。個(gè)人感覺自己的表現(xiàn)確實(shí)不是很好杯缺。
- 判斷一個(gè)字符串是不是 ipv6 地址(要求盡全力的考慮所有異常的情況)
- PS:當(dāng)時(shí)面試官明確告訴我蒸播,這個(gè)面試題做不好,面試是直接結(jié)束的萍肆。
- 介紹界面卡頓的優(yōu)化有哪些可以優(yōu)化的點(diǎn)袍榆。
- 介紹 UIResponder 的繼承鏈。然后說事件響應(yīng)鏈塘揣。
Bigo
感覺面試的這些公司包雀,Bigo 對(duì)于基礎(chǔ)的考察最全面。
一面
- (算法)找出一個(gè)頁面中漏出部分面積最大的試圖亲铡,重合的部分按照最上層的面積算漏出才写,會(huì)有時(shí)間復(fù)雜度的要求。
- 簡單地介紹的過往的項(xiàng)目經(jīng)驗(yàn)
- 控件的點(diǎn)擊事件和添加在上邊的手勢誰先響應(yīng)奖蔓,并說明原因
- 談 CoreAnimation 和 CoreGraphic 的區(qū)別
- 說 @synchronized 鎖的實(shí)現(xiàn)原理赞草,并說明其中可能存在的問題。同時(shí)介紹了 iOS 開發(fā)中常見的鎖吆鹤。
- 介紹編譯的過程和原理
- 談對(duì)于 bitcode 的理解和作用房资。
- 詳細(xì)的介紹了 Https 的過程。
二面
- 介紹屬性常用修飾符檀头,介紹 assign 和 weak 之間的區(qū)別轰异。這塊會(huì)延伸到內(nèi)存管理相關(guān),比如引用計(jì)數(shù)的方式暑始。
- 聊對(duì)于 GCD 的理解搭独,和 GCD 底層是如何進(jìn)行線程調(diào)度的。聊 GCD 中常見方法的使用 (group 廊镜,信號(hào)量
- 牙肝,barrier 等)
- 詳細(xì)的介紹了 KVC 和 KVO 的原理。
- 介紹消息轉(zhuǎn)發(fā)過程
- 介紹對(duì)于 Runloop 并介紹知道的應(yīng)用場景嗤朴。再具體場景中會(huì)有追問配椭。
- 介紹項(xiàng)目優(yōu)化的經(jīng)驗(yàn),這一塊會(huì)聊的比較細(xì)雹姊。
- 介紹對(duì)于靜態(tài)庫和動(dòng)態(tài)庫的理解股缸。
- 在 webview 使用過程中存在的問題和解決方案。
作為一個(gè)開發(fā)者吱雏,有一個(gè)學(xué)習(xí)的氛圍跟一個(gè)交流圈子特別重要敦姻,這是一個(gè)我的iOS交流群:[891 488 181] 瘾境,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題镰惦、面試經(jīng)驗(yàn)迷守,討論技術(shù), 大家一起交流學(xué)習(xí)成長旺入!
三面
- 介紹了過往 RN 的使用經(jīng)驗(yàn)和對(duì)于 Flutter 的理解兑凿。
- 談對(duì)于組件化的理解和市面上常見的組件化方案
- 問了一些 APM 向上的問題。
- 談個(gè)人對(duì)于項(xiàng)目架構(gòu)選擇的理解茵瘾。自己如何進(jìn)行架構(gòu)的選擇(主要對(duì)于 MVVM礼华,MVC等,后文有個(gè)人對(duì)于這一塊的理解)
- 談個(gè)人規(guī)劃
滴滴
一面
滴滴的一面分為兩部分龄捡。
- 第一部分:過往項(xiàng)目經(jīng)驗(yàn),會(huì)對(duì)自己的過往項(xiàng)目經(jīng)驗(yàn)慷暂,結(jié)合自己的描述聘殖,面試官問你介紹到的項(xiàng)目中涉及到問題,然后會(huì)據(jù)此引申出一些問題行瑞,這一部分占比比較大奸腺。
- 第二部分是基礎(chǔ)知識(shí)面
- 談屬性修飾符,如果 assign 修飾對(duì)象可能存在的問題和原因血久。
- 比較的深入的聊了內(nèi)存管理的內(nèi)容突照,包含引用計(jì)數(shù)和 weak 修飾的對(duì)象的內(nèi)存管理的過程。問的會(huì)比較深入氧吐。
- 講 runloop 的過往使用經(jīng)驗(yàn)讹蘑。
- 介紹自己比較熟悉的三方庫的實(shí)現(xiàn)原理
二面
- 對(duì)于鎖的理解(自旋鎖和互斥鎖),以及 iOS 開發(fā)中常見的鎖筑舅。同時(shí)要求介紹個(gè)人在開發(fā)過程中在哪些場景下用到過鎖座慰。
- 在實(shí)際開發(fā)中遇到過哪些多線程問題以及如何進(jìn)行解決的。
- 為什么不能在異步線程中更新頁面翠拣,介紹原因版仔。
- 對(duì)于內(nèi)存泄漏的了解,以及介紹知道的解決方案误墓。
- 一些優(yōu)化向上的問題蛮粮,主要是根據(jù)自己介紹的優(yōu)化進(jìn)行較為深入的追問。
- 一個(gè)坦克從一個(gè)空間的起點(diǎn)到終點(diǎn)谜慌,中間在某些位置上有阻隔的情況下然想,判斷從起點(diǎn)到終點(diǎn)是否有可行路徑的算法題。
三面
- 比較詳細(xì)的介紹之前的項(xiàng)目經(jīng)驗(yàn)和主要負(fù)責(zé)的內(nèi)容
- 介紹過往項(xiàng)目中最有挑戰(zhàn)的事情欣范,并會(huì)據(jù)此深入的聊又沾。
- 介紹了一些架構(gòu)向的理解
- 談個(gè)人規(guī)劃
快手
快手的一面是跨部門面試弊仪,二面是本部門面,所以一二面面試題會(huì)有一些重復(fù)杖刷,只寫了一次励饵。
一面
- 介紹過往的項(xiàng)目經(jīng)驗(yàn)
- 兩個(gè)不算難的算法題(具體的忘記了...)
- 聊了 assign 修飾對(duì)象可能存在的問題
- 聊過往項(xiàng)目中的優(yōu)化經(jīng)驗(yàn)
- 介紹消息轉(zhuǎn)發(fā)流程
二面
- 比較詳細(xì)的聊到的 block,深入的講了其中的實(shí)現(xiàn)原理滑燃,并介紹不同變量的引用方式役听。
- 介紹開發(fā)中常見的循環(huán)引用,并說明其中的原因和解決的方案和原理表窘。
- 介紹 Runloop 并講應(yīng)用場景典予。
- 二叉樹翻轉(zhuǎn)
三面
- 一道多線程實(shí)際場景下的問題,要求遠(yuǎn)程寫出實(shí)現(xiàn)方案的代碼
- 聊對(duì)于 MVVM乐严,MVC 和 MVP 的理解瘤袖。
- 介紹過往項(xiàng)目中 RN 的使用經(jīng)驗(yàn)和遇到的問題。
- 講如何將一張內(nèi)存極大的圖片可以像地圖一樣的加載出來(只說實(shí)現(xiàn)思路)
- 聊對(duì)于組件化的理解昂验,對(duì)于市面上的組件化方案的理解捂敌,優(yōu)劣分析等。
其他
- 除了上邊介紹的公司外既琴,還面了平安占婉,51 talk,58 同城甫恩,好未來逆济,美篇。
- 因?yàn)榻^大部分面試內(nèi)容和上邊的基本上只是重復(fù)磺箕,只對(duì)差異性的面試題進(jìn)行了總結(jié)奖慌。
- 對(duì)圖像編解碼的了解
- 在子線程中是如何進(jìn)行內(nèi)存管理的JSBridge 是如何實(shí)現(xiàn)的,以及和原生的調(diào)用關(guān)系。
- 問到了一些 AFNetworking 和 SDWebImage 相關(guān)的實(shí)際開發(fā)中的問題松靡。
文章到這里就結(jié)束了升薯,你也可以私信我及時(shí)獲取最新資料以及面試相關(guān)資料。如果你有什么意見和建議歡迎給我留言击困。