天天看點

2019年iOS面試真題大全(3-5年)

如果你想去大公司,如果你是3年左右的iOS開發者,如果你對面試的未知沒有十足的信心,如果你期望的薪資在15K+,那麼請認真刷完這300道面試題,都是真實公司經曆的…答案會在近期更新!你要先自思考,看個人那些方面還不足!

1、自我介紹

2、如何實作一個倒計時功能,類似于蘑菇街中的秒殺。

3、怎麼了解es6箭頭函數中的this,它和一般函數的this指向有什麼差別呢?

4、一個矩形,裡面一個櫻桃,過櫻桃做一條直線, 并且沒有資料和測量工具,如果做到評分矩形呢?

5、說一下同源政策

6、vue中的路由時如何管理的? 你知道他的實作方式嗎?

7、提到了我的部落格,問我的部落格相關問題。

8、retina螢幕的了解

9、說一說移動端的布局。 flexible。

10、知道原理嗎,怎麼自己去實作一個flexible。 rem布局的實作原理。移動端的點透是什麼,有沒有了解

11、說一說異步程式設計的方式有哪些。

12、項目中的設計是怎麼回事,說說設計方面。

13、你部落格裡的輪播圖,如果還要優化,你會怎麼去優化。

14、你最喜歡的es6中的特性是什麼,為什麼。

15、為什麼選擇前端(不是科班,這個問題經常被問。。。)

16、css布局的屬性有哪些。

17、有沒有遇到過這樣的問題: 一個有border的div,裡面有一個圖檔,發現圖檔和下面的border有一定的空隙(baseline)。

18、函數調用的方式有哪些。他們的差別是什麼。

19、說一說原型鍊(這個要非常清楚)。

20、用過什麼架構。jquery用過嗎?

21、你實習公司的前端leader是誰。

22、給你一個項目,你使用jquery還是vue、react。為什麼。(這個問題也是會被經常問到的)

23、說一說異步程式設計。

24、說一說回調地獄是什麼,有什麼問題。異常捕獲怎麼做。

25、說一說promise。 一個promise有多個then,如果第一個then出錯,後面的還會執行嗎,如何捕獲異常。 如果第一個then出錯了,我還想要後面的繼續執行,應該怎麼做。

26、你在學習js的時候,遇到過哪些js方面的坑、 你覺得js哪些知識會難一些。

27、 MVC 具有什麼樣的優勢,各個子產品之間怎麼通信,比如點選 Button 後 怎麼通知 Model?

28、兩個無限長度連結清單(也就是可能有環) 判斷有沒有交點

29、UITableView 的相關優化

30、 KVO、Notification、delegate 各自的優缺點,效率還有使用場景

31、如何手動通知 KVO

32、Objective-C 中的 copy 方法

33、 runtime 中,SEL 和 IMP 的差別

34、autoreleasepool 的使用場景和原理

35、RunLoop 的實作原理和資料結構,什麼時候會用到

36、block 為什麼會有循環引用

37、使用 GCD 如何實作這個需求:A、B、C 三個任務并發,完成後執行任務 D。

38、NSOperation 和 GCD 的差別

39、CoreData 的使用,如何處理多線程問題

40、如何設計圖檔緩存?

41、有沒有自己設計過網絡控件?

42、怎麼判斷某個 cell 是否顯示在螢幕上

43、程序和線程的差別

44、TCP 與 UDP 差別

45、TCP 流量控制

46、數組和連結清單的差別

47、UIView 生命周期

48、如果頁面 A 跳轉到 頁面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪個先調用?

49、block 循環引用問題

50、ARC 的本質

51、RunLoop 的基本概念,它是怎麼休眠的?

52、Autoreleasepool 什麼時候釋放,在什麼場景下使用?

53、如何找到字元串中第一個不重複的字元

54、哈希表如何處理沖突

55、你的成績怎麼樣? 為什麼不學習原專業?

56、登入狀态怎麼保持?

57、為什麼用本地存儲,而不用session,session更加簡單啊!

58、http和https的差別是什麼? (http、https、http2這些都是經常被問到的)

59、post和get的差別是什麼?

60、你會的技術有哪些?

61、你在學校社團是做什麼的,你是做什麼的?

62、為什麼不願意留在暑期實習的公司?

63、為什麼要用Alamofire而不用原生的NSURLSession,Alamofire的優勢是什麼?

64、如果讓你來封裝一個網絡庫,類似于Alamofire或者SDWebImage,你會如何實作?

65、在網絡庫中,如何針對TableView快速滾動過程中的圖檔額外渲染進行優化(網絡庫不能持有TableView)?

66、iOS的系統架構是怎麼樣的?常用SDK有哪些?

67、了解HTTP協定嗎?GET和POST的差別是什麼?

68、對安全方面有何了解?如何應對web頁面被劫持?了解HTTPS加密解密的過程嗎

69、vue和react有什麼差別?

70、angular用過嗎?

71、說一下同源政策? 說一個JSONP? (同源政策和跨域的多種方式還是要很熟練的)

72、304和200的差別是什麼。 (狀态碼也是必須要掌握的,包括各種差別)

73、你所知道的前端優化有哪些内容? (常考的問題,多多總結就好了)

74、linux知道嗎? 你所知道的linux指令有哪些?

75、vue中v-if和v-show的差別是什麼? (這個實在是記不住了,但是說明了vue不好就是因為api太多)

76、你看過哪些書? (比如計算機的幾門專業課、JavaScript進階程式設計、css揭秘、你不知道的JavaScript、深入react技術棧、圖解http等等)

77、你會的技術包括哪些

78、為什麼不學習原專業,而是要轉行。

79、為什麼選擇了北京而不是西安。

80、項目問題。

81、一個DOM樹,其中有兩個節點,找出這兩個節點公共的父節點? (視訊面試)

82、說一下二叉樹?

83、如果反轉二叉樹?

84、簡潔、對于不同的類型,如何做出對比?

85、說一下vue和react中的路由實作方式?

86、說一下強緩存和協商緩存? (浏覽器的緩存機制也需要很清楚)

87、跨域?

88、說一下設計模式?

89、其中的一個項目,你究竟做了哪些優化?

90、websocket聊天室如果發送失敗了,你怎麼解決這個問題?如何做到發送圖檔? 有了文字、圖檔等不同的資料類型之後,你如何實作資料的存儲,如何設計,前端如何擷取?

91、websocket聊天室有輸入框,那麼怎麼擷取的,對于使用div來模仿textarea,我說使用正則去掉div,那麼使用者輸入的也是div呢? 如果發送失敗了呢? 究竟應該是先發送,還是應該先存儲到redux中,考慮使用者體驗(仿照微信)。

92、為什麼資料庫使用的是mongodb而不是mysql。

93、什麼是xss,如何防止xss?

94、邊邊購項目說一下?登入的整個過程是什麼? 購物車是怎麼存儲設計的? 如果LocalStorage中資料的值超過了範圍,你該如何去處理這個問題? 如果商品下架了,那麼你如何顯示這個商品? 登入的過程中,一個使用者登出,另一個使用者登入,那麼這個購物車是否還是存在的。 說一下邊邊購項目的多個不同的子產品。

95、說一下你說的項目中遇到的問題,然後你是如何解決這個問題的? (這個可以好好準備一下~)

96、websocket的使用,底層是如何處理的。(類似于xhr的。)、

97、websocket在連接配接的過程中, 會有新包。。balabala 一堆聽不懂的詞,非常尴尬,,, 我就直接說的不會。

98、手寫代碼 判斷是否是浏覽器環境。

99、http和https https的整個過程畫一下

100、httPS需要多少時間 比http慢多少 怎麼優化

101、https有什麼缺點

102、手寫快速排序 複雜度 最慢是多少 為什麼取第一個值作為中間值 如果這個值是最大的或者最小的怎麼辦

103、http2有哪些特性 頭部壓縮怎麼回事

104、100層 1個花瓶仍 找到n層不碎 n + 1層碎了的情況 2個花瓶呢

105、node了解多少 全局對象是什麼

106、事件機制說一下 事件綁定說一下 手寫如何把div中的a放在平級其中的事件會怎麼樣 冒泡會到document還是window

107、推薦一下身邊厲害的人,你覺得你比他厲害嗎。為什麼

108、xss怎麼防範 尖括号應該怎麼過濾,一直問确定嗎,最後也沒說清楚

109、用過哪些架構

110、移動端如何真機調試

111、tap是怎麼回事、和click的差別。。。

112、cookie和session有什麼差別

113、說一下浏覽器緩存問題

114、動态規劃是怎麼回事

115、程序和線程的差別是什麼

116、說一下restful api吧,

117、說一說post和get的差別,

118、說一下狀态碼吧

119、你覺得什麼樣的代碼是好的代碼 (這個其實還挺考驗實力的)

120、說一下position的幾個屬性吧。

121、typescript你用過嗎?

122、最後又聊了一下部門的情況。

121、說一下你做過的幾個項目吧。

123、架構對比一下

124、cookie和session有什麼差別,cookie的大小是多少。

125、css3了解多少,說到了漸進增強和優雅降級

126、vue接觸過多長時間、react接觸過多長時間、

127、你對網際網路公司怎麼看,你想要什麼樣的公司、未來是怎麼樣的。

128、樂信你了解多少,你對來深圳工作怎麼看。

129、你還轉載過美團的文章?嗯 (很多面試官還是會看部落格的,謝謝部落格總是好的)

130、cookie和localStorage差別,如何把cookie寫在一個對象中,其屬性就是鍵值對

131、實作水準豎直居中的幾中方法(高度和寬度不确定)

132、flex是什麼

133、深拷貝和淺拷貝的差別,手寫深拷貝 (部落格裡總結過,遂讓手撕)

134、Oject的幾中方式,如何區分 (這個也是常考的)

135、相容性說一說,你做的PC端相容性是到哪的

136、如何看待最近react事件 (百度、wordpress棄用事件。可以多關注前端的一些動态)

137、JQuery和三大架構的差別,react和vue的差別

138、說一說CSS3中的動畫,animation中可以取哪些值 (css3動畫也很重要)

139、flex布局是什麼,預設的方向是什麼,如何改變方向

140、你的部落格都是自己寫的嗎? 你所有所學都會寫成部落格嗎?

141、說一說原型和原型鍊,object是最上面的嗎?

142、vue中的資料雙向綁定是如何實作的、

143、display有哪些,回答了7 8個,還是不滿意

144、你的node項目中有幾個線程,有幾個程序,如果node程序崩潰了,如何知道

145、node中的process是什麼

146、node中如何建立子程序/19講一講你遇到的比較困難的事情,問了兩個,最後是怎麼解決的

147、CSS中的機關有哪些分别說一說 (提到了ex)

148、你未來的發展規劃是怎麼樣的

149、跨域,舉一個例子,安全性問題到底在哪裡

150、100萬個資料中,找出前10大資料,最快的方法是什麼,堆排序怎麼寫

151、登入狀态怎麼使用cookie保持,最好的方法是什麼

152、頁面中一個video,可能格式不支援,那麼前端如何判斷并給出提示?

153、通過比較img的onerror是一種方法, 通過伺服器端也可以儲存一些屬性來辨別哪些浏覽器支援,哪些不支援

154、為什麼要用vue和react,而不用JQuery,給你一個項目,什麼情況下使用單頁面應用,什麼情況下使用多頁面應用。

155、你所知道的前端大會有哪些,比如騰訊web前端大會,CSS conf大會,js conf大會。

156、你學習的前端号有哪些,比如前端早讀課,那麼維護者是誰。

157、前端的表單中如何設定表單的方式,如multipart, www等,對于multipart具體是如何區分其中的不同的格式的

158、http2的所有特性。

159、http2中的頭部壓縮和多路複用。

160、迅雷一面比較基礎,二面會根據項目擴充,體驗還是不錯的,和面試官聊得很開心。

161、post、put和get的差別什麼

162、localStorage和sessionstorage的差別是什麼

163、頁面加載速度很慢,如何加速頁面的渲染

164、輸入了一個URL之後發生了什麼

165、圖檔很大,如何進行優化

166、手寫二分查找

167、畫出TCP三向交握的過程

168、websocket是如何實作伺服器端推送的

169、你對迅雷了解多少?

170、websocket和http的差別是什麼?websocket的優點是什麼?

171、為什麼使用websocket? websocket是怎麼連接配接的,一定需要通過http協定嗎? 短輪詢、commet、長輪訓都介紹一下。各有什麼優缺點。

172、聊天室如何相容IE8

173、http1.1中的keep-alive是怎麼了解的?

174、setTimeout和setInterval

175、原型、原型鍊、繼承等。

176、http1.0、http1.1、http2 (這三者還是要會區分的,也會經常被問到)

177、css3動畫相關

178、html、css、js分别實作一個動畫效果。

179、說一下你做過的幾個項目吧。

180、架構對比一下

181、你在項目中用過 runtime 嗎?舉個例子。

182、runtime 中,SEL 和 IMP 的差別

183、 MVC 具有什麼樣的優勢,各個子產品之間怎麼通信,比如點選 Button 後 怎麼通知 Model?

184、你在項目中用過 GCD 嗎?舉個例子。

185、Category 的實作原理,以及 Category 為什麼隻能加方法不能加屬性。

186、有沒有自己設計過網絡控件

187、block 的原理,block 的屬性修飾詞為什麼用 copy,使用 block 時有哪些要注意的?

188、iOS 的熱更新方案有哪些?介紹一下實作原理。

189、KVO、Notification、delegate 各自的優缺點,效率還有使用場景

190、cookie和session有什麼差別,cookie的大小是多少。

191、css3了解多少,說到了漸進增強和優雅降級

192、vue接觸過多長時間、react接觸過多長時間、

193、你對網際網路公司怎麼看,你想要什麼樣的公司、未來是怎麼樣的。

194、樂信你了解多少,你對來深圳工作怎麼看。

195、class A 繼承 class B,class B 繼承 NSObject。畫出完整的類圖。

196、細緻地講一下事件傳遞流程

197、main()之前的過程有哪些?

198、Category 中有 load 方法嗎?load 方法是什麼時候調用的?load 方法能繼承嗎?

199、講一下你對 iOS 記憶體管理的了解

200、使用 GCD 如何實作這個需求:A、B、C 三個任務并發,完成後執行任務 D。

201、你在項目中是怎麼優化記憶體的?

202、講講 RunLoop,項目中有用到嗎?

203、清單卡頓的原因可能有哪些?你平時是怎麼優化的?

204、項目有沒有做過元件化?或者你是否調研過?

205、講一下 OC 的消息機制

206、ARC 都幫我們做了什麼?

207、如何手動通知 KVO

208、c++ new 和 malloc 有什麼差別?

209、c++ 可不可以多繼承?

210、c++ 引用和指針的差別?

211、如何判斷兩個連結清單是否有交點?

212、堆區和棧區有什麼差別?為什麼要這麼設計?

213、給棧增加一個Max函數接口,傳回目前棧的最大值,應該如何設計?

214、給定排好序的整數數組array[]以及整數n,如何找出和為n的兩個數?

215、如果沒排好序呢?

216、一個字元串,如何找出隻出現一次并且最先出現的字元?

217、反轉字元串

218、判斷整數是否為 2 n 2^n 2n

219、一個m*n的棋盤,有些格子不能走,如何找到左上角到右下角的最短路徑?

220、iOS 按下 Home 鍵之後會發生什麼?

221、c++中記憶體配置設定是怎樣的?

222、c++中常用的容器有哪些?

223、queue和vector有什麼差別?

224、vector底層是怎麼實作的?

225、TCP三向交握?為什麼兩次不行?

226、項目中有沒有伺服器push機制?

227、兩個無限長度連結清單(也就是可能有環) 判斷有沒有交點

228、實作 isEqual 和 hash 方法時要注意什麼?

229、block 為什麼會有循環引用

230、如何設計圖檔緩存?

231、CoreData 的使用,如何處理多線程問題

232、property 的常用修飾詞有哪些?weak 和 assign 的差別?weak 的實作原理是什麼?

233、線程安全的處理手段有哪些?把你想到的都說一下。

234、說一下 OperationQueue 和 GCD 的差別,以及各自的優勢

235、Swift 中 struct 和 class 的差別

236、Swift 是如何實作多态的?

237、Swift 和 OC,各自的優缺點有哪些?

238、如果讓你實作 NSNotificationCenter,講一下思路

240、如果讓你實作 GCD 的線程池,講一下思路

241、為什麼是三次握手?為什麼是四次揮手?三次揮手不行嗎?

242、講一下 HTTPS 密鑰傳輸流程

243、UITableView 的相關優化

244、講講 MVC、MVVM、MVP,以及你在項目裡具體是怎麼寫的?

245、iOS 系統架構裡使用了哪些設計模式?至少說6個。

246、你自己用過哪些設計模式?

247、NSOperation 和 GCD 的差別

248、Objective-C 中的 copy 方法

249、 autoreleasepool 的使用場景和原理

250、哪一個項目技術點最能展現自己的技術實力?具體講一下。

266、你在項目中遇到的最大的問題是什麼?你是怎麼解決的?

267、用 Alamofire 比直接使用 URLSession,優勢是什麼?

268、你是如何學習 iOS 的?

269、和産品經理、測試産生沖突時,你是怎麼解決的?

270、手寫一下快排

271、周遊一個樹,要求不能用遞歸

272、RunLoop 的實作原理和資料結構,什麼時候會用到

273、找出兩個字元串的最大公共子字元串

274、假設ViewController中需要用一個Blcok來改變ViewController中的一個屬性,需要怎麼實作?

275、這樣實作之後,這個Block在記憶體中被存在何處?引用關系又是怎麼樣的?

276、函數中的閉包,如果要求閉包執行完後立刻改變函數中某個變量的值,應該如何實作?

277、如何實作一個類似于微信聊天界面的布局?

278、如何用Auto Layout實作一個如下要求的布局: %&@[email protected](#!.. (說了一大堆 =。= 反正就是使用優先級就解決了)

279、說一說 MVC 和 MVVM 的差別,以及各自的優缺點。

280、如何将 MVC 改造成 MVVM ?在MVVM中,網絡請求、緩存處理的部分應該放在哪個子產品?

281、為什麼說Swift是面向協定的語言?使用 Protocol 有什麼好處

282、比較一下 Swift 和 Objective-C 在語言層面上的安全性?

283、如果ViewController中使用閉包時,用weak避免循環引用,會有什麼問題?

284、當點選一個View時,發生了什麼?如何擴大點選區域?

285、如何對TableView進行優化?

286、能講一講你對光栅化的了解嗎?

287、對Swift和OC有什麼看法?

288、能對Swif中的可選類型談下你的了解嗎?

289、說一下快排的僞代碼和時間複雜度?

290、怎麼判斷兩個連結清單是否相交?

291、怎麼反轉二叉樹?

292、了解元組嗎?

293、了解多線程嗎?

294、什麼是并行?

295、現在有ABC三個任務,如何實作AB完成後再執行C?

296、對 Runtime 有什麼了解?

297、HTTP 和 HTTPS 有什麼差別?

298、知道 HTTPS 通信過程嗎?

299、Struct 和 Class 有什麼差別?

300、為什麼要設計Cache?Cache分級有什麼好處?

301、如何保證多核資料的一緻性?

良心編輯作者:Silence_廣

這些都弄懂了,相信offer已到你的郵箱了!
另外我附上一份pdf的面試題大全,以及收集的各大廠面試題 ! 要的加iOS進階技術群:624212887,群檔案直接擷取

如下圖所示:

2019年iOS面試真題大全(3-5年)
2019年iOS面試真題大全(3-5年)
2019年iOS面試真題大全(3-5年)