春招路上孤獨的iOSer的心路歷程(面經)

iOS面試簡歷專員發表於2020-05-12

獻給目前為數不多的春招路上孤獨的iOSer:
背景: 雙非渣一本,2017級大三計算機科班,演算法:劍指offer 68題刷了一遍,leetcode 60題。網路、作業系統啥的 跟著書本學習然後Google查了些資料,然後大學期間做過一些有關iOS開發的實踐專案。
前言: 雙非本科菜雞的春招有些坎坷,還記得第一次面試(2019年12月12號),帶有一絲絲緊張的感覺跟位元組跳動的一面面試官聊了56分鐘,當初沒複習啥,某學長的建議早面早知道問題所在,一路聊下來,還算是基礎問題都答出來了,後面問了一個LRU設計,由於沒接觸過LRU快取演算法,要我設計,就一路思考說了連結串列+map,時間複雜度沒達到要求,那個時候也沒想到用雙向連結串列(太菜了QAQ).再給我一道股票演算法題,不加思考的說了n方的思路,要我最佳化,想了幾分鐘程式碼也寫出來了。沒抱太大希望的給我過了。中間由於手機停機了(自己沒發現),hr還加了我微信約二面(被感動!!),17號二面全程被虐(聽說面試官是抖音那邊轉到這個部門的)。。幸好最後演算法題也寫出來了,也讓過了。最後面hr面都過了。第一次面位元組的體驗非常好 。後面過了一個星期多 offer 審批。 hr告訴我他們2020年計劃希望招資歷豐富的人。offer審批掛掉了。也算是很心痛啊。然後轉到位元組的data部門(聽說是絕對核心部門),一二面3個小時下來(有點累),最後二面面試官給我了三個的演算法題。我一個也沒寫出來(後面搜leetcode 演算法題 都是hard難度)....就這樣第二次位元組掛了。。 然後帶著遺憾過年了。。就開始刷演算法題。開始準備春招了。

流程:

位元組

2019年 12-12 一面

自我介紹

程式和執行緒區別,程式間的通訊、記憶體分割槽。

記憶體堆和棧的區別、為什麼堆上面效率高

liunx上有沒有寫過程式通訊的程式碼

 之後發生了什麼

Https 加密過程

tcp三次握手

swift struct 和class 區別

swift static與class關鍵字的區別

逃逸閉包與普通閉包區別

iOS 多執行緒GCD async與sync的區別

iOS 3張圖片下載完了之後合併一張圖

設計一個快取機制(底層資料結構是什麼樣子的)LRU

股票演算法題(要求0(N)時間)

提問

2019年 12-17 二面

多執行緒程式碼之行情況 讀程式碼寫結果

nonatomic 和 atomic 區別

atamic 執行緒安全如何實現的

nonatomic 一定是執行緒不安全的麼

swift 陣列切片是什麼

swift extension的理解

翻轉連結串列

講講對這個程式的測試用例

最近公共父節點

提問

2019年 12-20 hr面

圍繞簡歷上的獲獎 還有獎學金成績方面問了些問題,還要一些實習時間問題。

2020年 1-20 1、2面

一面
1 tableview 重用機制 滑動效能調優方法

2圓角效率問題 離屏渲染

3calayer 與uiview 區別 為什麼這麼設計

4swift 訊息機制

5 多執行緒如何保證執行緒安全

6 mvvm與mvc的區別

7 你認為mvvm最大的好處

8 如何比較兩個浮點型別 為什麼要這麼做

9 程式和執行緒的區別 為什麼切換執行緒代價小

10 如何實現程式間的通訊

11 訊號量 管道 共享記憶體 效率比較

12 設計模式你還了解哪些

13 詳細講一下觀察者模式、介面卡模式、橋接模式

14 hppts加密過程詳細講一下

15 抓包原理

16 如何驗證加密過程的證書

17 同步非同步 序列 併發 區別

18 最低公共父結點

二面

自我介紹

swift訊息機制

swift比oc快在哪裡

https加密過程

證書驗證如何進行

tcp如何進行擁塞控制 如何進行滑動視窗的大小變動的 根據什麼

三道演算法題,不太記得了。。

2020年 3-10日 抖音1、2面

一面 75分鐘

自我介紹

專案 懟了45分鐘

app啟動流程最佳化

app包瘦身

設計題:根據文字長短動態設定cell

設計題:上面題目再加一個button button 文字內容長短不一

https加密過程

客服端是怎麼證書驗證

http用了哪些協議

為什麼8g大小的程式可以跑在4g記憶體上面

彙編函式呼叫的引數怎麼傳的

如何提高上傳影片大成功率 設計方案

演算法題 :定義:給定a 計算出a各個位數之和 相加等於b 。現在給定b 求a

二面 45分鐘

自我介紹

專案 15分鐘

載入圖片卡頓是為什麼 有哪些最佳化方案

圖片解碼時機

設計os的複製貼上

假如現在有一個可以需要在三維中寫字並輸出結果的課題 怎麼做這個課題 你的思路

演算法題 數字轉漢字

阿里

2020年 2-17 電話一面

自我介紹

棧和堆的區別

各種排序演算法比較(冒泡、快速排序、歸併排序、桶排序、計數排序)

陣列、連結串列、雜湊表優缺點

uiview與calayer的聯絡與區別 為什麼uiview可以響應事件

tableview的重用機制以及與collectionview的區別

cpu和gpu的區別 離屏渲染

mvvm與mvc

專案亮點 野指標處理

記憶體管理

深複製與淺複製 如何進行類的深複製

網易有道

2-21 一面

一面 70分鐘

1.聊了下目前的情況以及經歷

2.事件傳遞與響應鏈

3.runtime機制聊一下

4.runloop的理解

5.mvc與mvvm的理解

6 gcd與NSopraretion的優缺點

7.tableview的理解重用以及調優

8.非同步載入圖片原理

9.平常除錯怎麼做的

10.gpu與cpu 離屏渲染

11.網路請求庫的封裝

12.記憶體管理 解決迴圈引用又出什麼問題

13.迴圈引用出現的常見情況

14.autoreleas談談

15.timer為什麼在子執行緒中不工作

16.為什麼學iOS

2-25 二面

二面 17分鐘

自我介紹

實習多久、學習過哪些語言

為什麼選擇iOS、學習iOS最大的困難。

mvc和mvvm理解

瞭解哪些資料結構

雜湊表實現原理

iOS記憶體管理方式

瞭解哪些網路協議

http 傳輸層用的哪個協議,版本問題

2-27 網易有道 hr+OC

問了一些比較常規的問題

蘑菇街

3-6 一面 40分鐘

自我介紹

演算法題: 兩個佇列實現棧

分類extension 在oc與swift區別

在什麼時機載入(沒答上來)

oc與swift語言區別

tableview做了哪些最佳化

如何實現多個圖片下載後合成一張圖片

除了gcd group之外 其他方法

訊號量與鎖的區別

mvc和mvvm的區別

為什麼從swift開始學

如何學習iOS的

有什麼要問的?(由於感覺不錯問了下評價)

1.評價

2.為什麼UI只能在主執行緒重新整理?

3-12 二面 40分鐘

演算法題:給定排序陣列和一個值sum,找到兩個值 等於這個sum。

自我介紹

專案相關

tableview最佳化

app啟動流程

kvo實現機制

第三方庫Alaomofire 的核心

除了學習iOS還關注哪些技術

提問:

3-15 hr面 22分鐘

問了很多,都是聊天之類的。

快手

一面(4月2日)

第一題:找錯誤 將下面這段程式碼的所有錯誤找出來並改成
@interface homeViewControler : UIViewController{someManager *_manager;}@property (nonatomic, assign) NSNumber *flag;@property (nonatomic, strong) NSString *name;@property (nonatomic, strong) UIButton *button;@end@implementation homeViewControler- (void)viewDidLoad{self.button.onClick = ^{if (self.flag) {self.name = @"the name";[_manager reloadData:self.name];}else{self.name = nil;[_manager clearData];}};}@end
第二題:
- (void)someMethod {int i = 10;//__block int i = 10; dispatch_async(dispatch_get_main_queue(), ^{NSLog(@"%d",i);});i = 20;}

程式碼輸出多少?如果用__block修飾i又會輸出多少?為什麼?

第三題:手寫程式碼

1、使用遞迴,計算從1加到100的值

2、使用遞迴,計算從 n 加到 m的值

(n < m)

3、使用遞迴,計算從 n,n+t, n+2t, .... n+ mt 的值

(m >=1)

第四題:設計題

實現一個簡單的影片播放App,使用者可以播放、暫停、或者拖動進度條,也可以在多個影片源之間進行切換。

有一個第三方的影片播放器SDK,提供一些基本的API:
1)prepare:初始化,傳入播放地址
2)play:開始播放
3)pause:暫停播放
4)seek:跳到某一時刻
5)release:停止播放並釋放資源
這些API都是同步的,可能會有耗時,並且該播放器對於呼叫的順序有比較嚴格的要求,例如連續呼叫兩次play,或者沒有呼叫play就呼叫pause,都會造成異常。

問題:如何實現這個影片播放功能,使得使用者的操作能夠儘早得到響應,且不會造成異常。

二面(4月2日)

問了很多問題,大概記得的就是:

手寫LRU、股票演算法題

MVVM與MVC的比較

UItableView的效能調優

Auto layout的原理

GCD與NSoperationqueue比較

kingsiher影像庫的非同步載入原理

影像解碼

事件傳遞與響應

閱讀過哪些第三庫原始碼分析一下

由於過了四五天了 二面有些忘記了。

hr面(4月7日)

hr 一些常規問題,然後這個hr小姐姐好像還懂點技術,就追著我的簡歷不放,要我覆盤專案,還要講下技術方面的點。

虎牙

三面+hr面 都是電話面試,比較容易然後就忘記寫記錄了。估計是比較缺人叭,流程很順利

騰訊:

3-24 wxg 一面

上來三道演算法題,然後問了些專案的事情,演算法做得還闊以,後面晚上給掛了,也心情複雜就沒記錄了。

4-12 pcg 一面

由於拿了快手音影片的實習offer 就無所謂了,順便面了下 聊了80分鐘左右,還共享螢幕看我寫程式碼。 後面給過了,,等著複試,4-17日 騰訊提前批結束,流程變灰了,就沒參加了

推薦 :

如果你想一起進階,不妨新增一下交流群 1012951431

面試題資料或者相關學習資料都在群檔案中 進群即可下載!

春招路上孤獨的iOSer的心路歷程(面經)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971523/viewspace-2691516/,如需轉載,請註明出處,否則將追究法律責任。

相關文章