我的2020春招iOS面試總結 -百度/京東

前言:

最開始春招的時候,一線互聯網基本上都投了,但是很多都被刷了,有的是刷了學校,有的是刷了四級,有的是刷了專業,但更多的是刷了能力,畢竟我們學校計科學院每年有幾個人去BAT

大廠的春招基本上結束,面試結果不理想,因爲只想在成都工作,所以面的公司比較少(就寫三個最有代表性的公司)。

寫下一點面試中被問到的一些問題給大家參考,也是對自己的不足進行總結。

####【百度】(二面掛)

一面:

1.說下線程和進程的區別

2.如何保證線程安全

3.寫個算法,輸出2~100的素數(然後問你怎麼優化,還可以怎麼優化,然後還可以怎樣優化…)

4.瞭解哪些設計模式

5.MVC設計模式的思想是什麼?在項目中的運用,然後對比MVVM設計模式

6.堆和棧的區別,工程項目中的哪些數據是儲存在堆哪些在棧中

7.iOS中的NSCopying協議,copy,MutableCopy的區別

8.解釋屬性修飾關鍵詞的作用(weak,strong,copy,readOnly,assgin,nonatomic等)

9.最近看過哪些書?目錄結構是怎樣的?哪部分內容印象最深?瞭解過作者嗎?

10.你還有什麼問題問我?

作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流羣:413038000,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 大家一起交流學習成長!

本次面試題答案總結如下,請點擊下面鏈接查看。

iOS開發——2020 最新 BAT面試題合集(持續更新中)

二面:

1.寫二叉樹的先序遍歷,然後用非遞歸寫

2.寫快排,並分析原理

3.http協議

4.http爲什麼底層是tcp不是udp ?

5.tcp是基於流式傳輸的,怎麼設計協議,進行協議的解析?

6.tcp爲什麼要進行三次握手?不是2次,4次?

7.抓包工具的原理是啥?

8.socket異常斷開時,設計一個合理的重連機制。

9.內存管理

10.iOS開發中用過哪些測試性能的工具

11.instruments它爲什麼能檢測內存泄漏

12.做過的項目有什麼技術難點(我說的難點在面試官看來都不是難點)?

13.在10億個數中如何快速找到最大的前100個數?

14.你有什麼創新能力?

15.你還有什麼問題問我?

總結:偏向基礎,問題逐步深入。

【京東】(二面莫名其妙掛)

一面:

1.解釋屬性修飾關鍵詞的作用(weak,strong,copy,readOnly,assgin,nonatomic等)

2.項目中用過哪些設計模式

3.結合響應者鏈條和設計模式,解釋事件怎樣傳遞和處理

4.blcok,NSNotification,delegate,Observer比較

5.block爲什麼會導致循環引用

6.爲什麼想來京東

7.聊人生

二面:

(項目:因爲實習的公司用的SDK組件化的開發模式,拿出來作品一邊演示他一邊提問,1-6點都是對於我的SDK項目提問)

1.爲什麼需要組件化?

2.tableView的性能優化

3.SDK的接口設計過程(一般設計爲進入業務線提供一個註冊方法,在需要的時候使用代理回調。向SDK裏傳遞數據一般用單利模式,開出相應的方法)

4.cocoaPods的實現思路,爲什麼沒有使用cocoaPods管理自己的SDK

5.項目中緩存SDK採用的策略(我們項目主要借鑑了YYCache,採用lru算法,使用sqlite)

6.相對複雜業務交互的處理,採用的設計模式(單利模式配合模板方法模式實現)

7.AFN實現思路,對源碼的理解程度

8.項目中如何保證數據的安全性

9.runtime在奇葩需求當中的運用(比如產品要求5和6上面顯示不同的字體大小,可以用runtime的交換方法)

9.快排的原理

10.C語言中strlen和sizeof的區別

11.職業規劃(開始聊人生)

總結:

偏向項目,主要考察對業務的處理熟練度。(這是我最拿手的,二面差不多聊了1個多小時,沒有答不上來問題,走的時候我跟面試官都很開心,晚上回去一看官網狀態爲未通過,傷心極了)

【同花順】

一面:(問的太基礎)

1.對於面向對象的理解

2.內存管理

3.多線程

4.保證線程安全的方式(加鎖和GCD柵欄,隊列組相關知識)

5.KVC和KVO的使用和注意事項

6.推送的原理

7.tableViewCell的自適應如何實現,如何保證性能

8.堆和棧的區別

二面:

1.SDWebImage的底層實現(我只答到了沒有沙盒的時如何實現)

2.簡述下runLoop(問了應用程序在不同條件下各個線程runLoop所處模式)

3.一個頁面可以由幾個控制器共同管理嗎

4.http和socket的區別

5.什麼時候用集合(NSSet)

6.項目上線或者版本迭代,有過被拒嗎?是什麼原因?怎麼解決?

7.轉場動畫相關操作

8.繪圖相關知識(coreGraphics框架的使用)

9.數據持久化

10.xib和代碼適配界面有什麼不一樣

11.項目中遇到的問題,如何解決(我從所做的項目的框架搭建,模塊分佈,設計類圖,開發,自測,上線一直扯)

12.最早什麼時候能夠來實習(感覺他們很缺人,但是我問了下他們部門都有30多個iOS開發者!!)

三面:(因爲薪資沒談攏加了一次技術面)

1.assgin和weak的區別,代理爲什麼用assgin

2.類方法:load 和 initialize 有什麼區別,一般怎麼用它們

3.OC語言的動態機制的理解(開始淺談runtime)

4.設計模式:代理和觀察者模式的對比,單利模式的使用注意點

5.如何設計網絡請求框架(我按照AFN的理解去解釋了一波)

6.響應者鏈條

7.iPhone自帶的AssistiveTouch你如何實現

8.App包的大小受哪些影響

9.關於debug和release

10.view的生命週期

四面:

(HR面,基本上是閒扯,想着反正拿到offer也不得去,我問他的問題都比他問我的還要多。。。基本上也記不住了)

1.說出你的三個缺點和優點

2.爲什麼選擇同花順

3.說出你在大學期間幹過的最牛逼的一件事

4.對於我們企業文化的理解(我把我實習公司的企業文化吹噓了一遍,發現這幾點基本上放在任何私企都好使:客戶至上,團隊合作,誠信正直,務實創新)

總結:技術面非常偏向項目,感覺前面兩個面試官比較水。

綜上所述:秋招的一線互聯網公司基本上看中學習能力和刻苦勤奮程度。比如百詞斬給出的招聘要求就是精通數據結構和算法,沒有實際開發經驗的都可以。所以要想去大廠基礎是必不可少的,而且必須深入學習。

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