前言:
最開始春招的時候,一線互聯網基本上都投了,但是很多都被刷了,有的是刷了學校,有的是刷了四級,有的是刷了專業,但更多的是刷了能力,畢竟我們學校計科學院每年有幾個人去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.對於我們企業文化的理解(我把我實習公司的企業文化吹噓了一遍,發現這幾點基本上放在任何私企都好使:客戶至上,團隊合作,誠信正直,務實創新)
總結:技術面非常偏向項目,感覺前面兩個面試官比較水。
綜上所述:秋招的一線互聯網公司基本上看中學習能力和刻苦勤奮程度。比如百詞斬給出的招聘要求就是精通數據結構和算法,沒有實際開發經驗的都可以。所以要想去大廠基礎是必不可少的,而且必須深入學習。