iOS基礎(chǔ)通用面經(jīng)

通用必備基礎(chǔ)知識(shí)

  • 拋開iOS 開發(fā)這一項(xiàng)技能,我們最基礎(chǔ)的本質(zhì)還是一名軟件開發(fā)工程師材诽,所以基礎(chǔ)的部分必不可少底挫,本篇面經(jīng)中,不會(huì)具體總結(jié)出每個(gè)公司每一面具體考的內(nèi)容脸侥,而是會(huì)根據(jù)不同的知識(shí)點(diǎn)將面試真題分為不同的專題部分來具體分析建邓。

計(jì)算機(jī)網(wǎng)絡(luò)

  • 對(duì)于大前端類,計(jì)算機(jī)網(wǎng)絡(luò)主要考量的還是傳輸層和應(yīng)用層部分的知識(shí)睁枕。

  • 瀏覽器輸入url到網(wǎng)頁(yè)顯示經(jīng)歷了什么過程?

  • TCP三次握手:具體是怎么握手官边?為什么要三次握手沸手??jī)纱涡胁恍校繛槭裁床恍凶⒉荆咳挝帐止薨保诙魏偷谌畏謩e因?yàn)槭裁?

  • TCP是如何保持可靠傳輸?shù)模〒砣刂疲龁?dòng)等等概念的理解)

  • TCP為什么要四次揮手滩援,TIME_WAIT為什么至少設(shè)置兩倍的MSL時(shí)間栅隐?

  • TCP三次握手的詳細(xì)數(shù)據(jù)傳遞,四次揮手詳細(xì)數(shù)據(jù)內(nèi)容玩徊,數(shù)據(jù)包組成租悄、TIME_WAIT狀態(tài),2MSL恩袱,RTT泣棋,重傳、滑動(dòng)窗口畔塔、擁塞原理等等

  • TCP潭辈、UDP面向連接、無(wú)連接具體理解澈吨,他們的區(qū)別把敢,如何將 UDP 改造成和 TCP 功能相似

  • TCP/IP四層協(xié)議,OSI七層協(xié)議谅辣,每層都有啥對(duì)應(yīng)的協(xié)議修赞,原理是啥

  • http報(bào)文結(jié)構(gòu),http中超文本超是啥意思桑阶,http請(qǐng)求的組成

  • http 報(bào)文頭部含有什么柏副,multipart了解嗎

  • http的狀態(tài)碼,200蚣录,304割择,301,http請(qǐng)求報(bào)文萎河,響應(yīng)報(bào)文

  • get和post請(qǐng)求的區(qū)別荔泳?什么情況下用到?POST傳輸?shù)臄?shù)據(jù)都有哪些格式呢(這里需要搞定http各種請(qǐng)求傳輸?shù)臄?shù)據(jù)格式)

  • 描述一次完整的http請(qǐng)求

  • 什么是cookie公壤,什么是session换可,區(qū)別聯(lián)系,cookie的本質(zhì)是什么

  • http1.0厦幅,1.1沾鳄,2.0的區(qū)別

  • https有幾次握手和揮手?https的原理确憨。http有幾次揮手和握手译荞?TLS在哪一網(wǎng)絡(luò)層瓤的,基本原理是什么?

  • https與中間人攻擊

  • HTTPS吞歼,安全層除了SSL還有圈膏,最新的? 參數(shù)握手時(shí)首先客戶端要發(fā)什么額外參數(shù)

  • HTTPS是什么篙骡?握手過程稽坤,SSL原理,非對(duì)稱加密了解多少

  • 證書是干什么用的

算法

  • 劍指 offer 上面的題目都是面試過程中的算法高頻題糯俗,特別是二叉樹和字符串尿褪,棧隊(duì)列,鏈表得湘,跳臺(tái)階問題一定要弄懂并且熟練杖玲。

  • 八大排序算法的復(fù)雜度,概念淘正,最好最壞情況摆马,手寫都是必須要掌握的,其中的重點(diǎn)是快排和堆排序鸿吆,對(duì)于快排的優(yōu)化囤采,快排的基礎(chǔ)原理,系統(tǒng) API 快排的實(shí)現(xiàn)原理等都是必須要掌握的基礎(chǔ)知識(shí)伞剑。

  • 二分查找在面試過程中也比較常見斑唬,因?yàn)楸容^簡(jiǎn)單,包括二分查找的變種黎泣。

  • 二叉樹的前中后序的遞歸與非遞歸遍歷方式,以及層序遍歷和蛇形遍歷都是重點(diǎn)缤谎。

  • 海量數(shù)據(jù)如何找到重復(fù)次數(shù)最多的那個(gè) 優(yōu)化

  • 海量數(shù)據(jù)抒倚,但是都是1~100之間的,如何找到重復(fù)次數(shù)最多的那個(gè)

  • 面試算法題一般不難坷澡,掌握技巧很重要托呕。二叉樹相關(guān)的算法題基本都要往二叉樹的遍歷上靠,鏈表相關(guān)的算法題基本都要往額外的“幫助指針”上面靠频敛。

數(shù)據(jù)結(jié)構(gòu)

  • 在面試過程中這一類主要是和算法來一起考项郊,數(shù)據(jù)結(jié)構(gòu)一般主要會(huì)問棧與堆的區(qū)別,棧與隊(duì)列的區(qū)別等等斟赚,在前端的面試中着降,紅黑樹這類的很少被問到。

編譯原理

  • 主要需要了解程序的編譯過程的基礎(chǔ)概念就OK拗军。

操作系統(tǒng)

  • 操作系統(tǒng)老生常談的就是進(jìn)程任洞,線程的概念和區(qū)別蓄喇,幾個(gè)狀態(tài),以及他們的調(diào)度方式交掏,通信方式妆偏,保持安全等等知識(shí)點(diǎn),基本面試都會(huì)被考到一點(diǎn)盅弛,這一部分需要牢牢掌握钱骂,實(shí)在理解不了就背下來。

  • 說說遞歸和普通的循環(huán)方式有什么區(qū)別

  • 計(jì)算機(jī)存儲(chǔ)系統(tǒng)是指挪鹏?哪些存儲(chǔ)系統(tǒng)能提高程序執(zhí)行的效率见秽?

  • 段錯(cuò)誤和棧溢出分別在什么時(shí)候會(huì)出現(xiàn),為什么

  • 其他方面的包括頁(yè)置換等等基礎(chǔ)知識(shí)狰住,知道概念就OK张吉,在前端面試過程中這部分不是特別重點(diǎn)考量的點(diǎn)。

數(shù)據(jù)庫(kù)

  • 數(shù)據(jù)庫(kù)這部分也比較簡(jiǎn)單催植,主要就是 ACID 等基礎(chǔ)概念肮蛹,幾大范式,簡(jiǎn)單的 sql 語(yǔ)句创南。

設(shè)計(jì)模式

  • 工廠方法伦忠,抽象工廠,簡(jiǎn)單工廠的區(qū)別和聯(lián)系

  • 裝飾者

  • 觀察者

  • 代理模式等等

概率論

  • 三門問題

  • 紅黑球等等常見問題百度即可

Linux

  • 主要包括基本的 shell 編程稿辙,基本的腳本命令昆码,重點(diǎn)是 grep,ps邻储,top赋咽,free等

版本控制

  • 版本控制主要包括 Git 和 SVN

  • git 的基礎(chǔ)概念,基本命令吨娜,包括 merge 和 rebase 的區(qū)別等脓匿。

  • Git 和 SVN 的區(qū)別,異同點(diǎn)

  • 平時(shí)開發(fā)中宦赠,版本控制的流程是怎么樣的

通用語(yǔ)言基礎(chǔ)

  • 面向?qū)ο蟮亩鄳B(tài)陪毡。多態(tài)的幾種方式

  • 各個(gè)語(yǔ)言中的單例模式

  • 內(nèi)存管理方式

  • static 和 const 的作用和區(qū)別

  • C 語(yǔ)言的內(nèi)存分段

iOS專業(yè)知識(shí)點(diǎn)

  • iOS 的面試過程中,雖然知識(shí)點(diǎn)很多很雜勾扭,但是老生常談的還是那些比較陳舊的知識(shí)毡琉,只要對(duì)他們有較好的理解,通過面試一般不成問題妙色。

內(nèi)存管理

  • ARC 和 MRC 的區(qū)別

  • 屬性的關(guān)鍵字桅滋,他們具體的底層實(shí)現(xiàn)以及區(qū)別,被問爛的知識(shí)點(diǎn)包括 copy燎斩, 淺拷貝和深拷貝的區(qū)別虱歪, weak 的底層實(shí)現(xiàn)蜂绎。稍微新穎一點(diǎn)的 assgin 和 weak,unsafe_unretained 具體有什么區(qū)別笋鄙,assgin是否可以用來修飾對(duì)象师枣。這一部分是面試必問,一定要弄懂萧落。

  • Autorelease pool的底層實(shí)現(xiàn)原理践美,與 Runloop 的關(guān)系, autoreleasing 關(guān)鍵字找岖。

Block

  • 本質(zhì)陨倡,基礎(chǔ)概念

  • 使用時(shí)要注意的地方

  • block的實(shí)現(xiàn),如何截獲自動(dòng)變量的许布,如何修改自動(dòng)變量的值的兴革,block的幾種形式

  • __block的本質(zhì)

  • forwarding 指針

  • block怎么避免循環(huán)引用。是不是所有的block都會(huì)產(chǎn)生循環(huán)引用蜜唾,block里面怎么避免被提前釋放

多線程

  • iOS 中多線程的幾種方式杂曲,區(qū)別,使用場(chǎng)景袁余,基本概念擎勘,同步異步,串行并行的區(qū)別颖榜。

  • GCD棚饵,寫一個(gè)死鎖,并行和串行隊(duì)列掩完,同步和異步的區(qū)別噪漾,GCD怎么控制最大并發(fā)數(shù)

  • 怎么讓子線程定時(shí)執(zhí)行一個(gè)方法,具體的實(shí)現(xiàn)方法

  • 如何控制線程的最大并發(fā)數(shù)為10且蓬,然后加載十個(gè)圖片最后展示出來怪与,具體方法

  • 子線程的runloop是怎么執(zhí)行的,它里面的 autoreleasepool 是怎么執(zhí)行的缅疟。

  • NSMutableArray 怎么保證線程安全的。

  • GCD怎么避免block中的變量被提前釋放

Runtime

  • 消息的動(dòng)態(tài)轉(zhuǎn)發(fā)

  • 給 Category 添加屬性遍愿,關(guān)聯(lián)對(duì)象都有幾種形式

  • method swizzling

  • 說一說類的結(jié)構(gòu)存淫,運(yùn)行時(shí)中的class都有什么屬性,property都有什么屬性

  • 說一說isa指到NSObject的那個(gè)過程

  • Category的本質(zhì)沼填,load方法什么時(shí)候加載桅咆,Category重寫了父類的方法會(huì)怎樣,底層源碼 坞笙,如果兩個(gè)Category和一個(gè)基類岩饼,都有同名方法荚虚,先執(zhí)行哪個(gè)

  • property會(huì)自動(dòng)生成什么,如果此時(shí)已經(jīng)有下劃線_name的實(shí)例變量了那會(huì)生成什么

  • load 和 initialize

Runloop

  • runloop實(shí)現(xiàn)原理

  • source 類型

  • 線程奔耄活的方式

  • runloop和多線程的關(guān)系版述,以及timer的關(guān)系

第三方庫(kù)的源碼

  • AFNetWorking, SDWebImage寞冯,YYModel 都是非常常見渴析,基本面試必問

  • 舉例:SDWebImage懟源碼,實(shí)現(xiàn)原理吮龄,如果正在請(qǐng)求一個(gè)地址的圖片俭茧,這個(gè)時(shí)候又同時(shí)另一個(gè)請(qǐng)求,這個(gè)時(shí)候會(huì)再發(fā)送一個(gè)請(qǐng)求嗎漓帚?

  • 如何自己實(shí)現(xiàn)一個(gè) YYModel母债,具體使用的方法,延伸到 runtime 的源碼

生命周期

  • app 的生命周期

  • 控制器的生命周期

  • 視圖的生命周期

UI

  • UICollectionView 瀑布流

  • UITableView 相關(guān)的優(yōu)化尝抖,底層原理等

  • 頁(yè)面布局

  • layoutSubViews 和 drawInRect 等的區(qū)別

  • 自己實(shí)現(xiàn)一個(gè) UIScrollView

  • 事件的傳遞鏈和響應(yīng)鏈

  • 界面非痴泵牵卡頓怎么定位到具體的類和方法

  • UIView和CALayer區(qū)別

數(shù)據(jù)存儲(chǔ)

  • 數(shù)據(jù)持久化都有什么,用過什么牵署,歸檔漏隐,偏好設(shè)置都可以存儲(chǔ)什么樣的類型

架構(gòu)

  • MVC,MVVM等奴迅,他們的區(qū)別和聯(lián)系青责,優(yōu)缺點(diǎn)

  • 從 0 到 1 實(shí)現(xiàn)一個(gè) app 的思路

  • 對(duì)于項(xiàng)目從 main 函數(shù)執(zhí)行之前到之后啟動(dòng)優(yōu)化,卡頓優(yōu)化和界面優(yōu)化取具。

OC 語(yǔ)言特性

  • OC 與 C 的區(qū)別脖隶, OC 與 Java, C++ 的區(qū)別暇检。

  • iOS中的協(xié)議

  • OC 動(dòng)態(tài)性

  • C語(yǔ)言如何動(dòng)態(tài)的交換兩個(gè)方法的實(shí)現(xiàn)

其他

  • KVO 的底層原理产阱,自己實(shí)現(xiàn)

  • KVC 的底層原理,自己實(shí)現(xiàn)

  • NSNotificationCenter 的底層原理块仆,是同步還是異步构蹬,如何實(shí)現(xiàn)一個(gè),如果在子線程接收一個(gè)通知能不能接收到

  • 幾種頁(yè)面?zhèn)髦捣绞降膮^(qū)別

  • 界面非郴诰荩卡頓怎么定位到具體的類和方法

  • 一個(gè) int 類型的值庄敛,被@ 包裝成 NSNumber 類型,傳遞到一個(gè)接受 id 類型的方法參數(shù)中科汗,這個(gè)值能不能保持正確

  • 在 iPad 上面藻烤,分屏功能,拖拽 wps 的文件到qq的這個(gè)過程是怎么實(shí)現(xiàn)的(進(jìn)程間通信的方法)

  • 如何實(shí)現(xiàn)dispatch_once

  • Instrument 的使用

  • 熱修復(fù)用過么,平時(shí)版本是怎么迭代的怖亭,線上bug是怎么修復(fù)的

  • 實(shí)習(xí)期的一些內(nèi)容涎显。

必備書單

  • 《圖解 TCP/IP, 圖解 HTTP》

  • 《劍指offer》

  • 《Effective Objective-C》

  • 《iOS 與 OSX 高級(jí)編程》

  • 以上都是必須要重復(fù)看很多遍的書單,其他不太重要的暫不列出兴猩。
  • 【書籍獲取】 可加iOS高級(jí)交流群:624212887期吓,群文件包含:iOS各類技術(shù)書籍,BAT面試題合集等
必備書單

總結(jié)

  • 面試中考量的基礎(chǔ)峭跳,最最重要的包括計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)結(jié)構(gòu)算法膘婶。對(duì)于iOS 開發(fā)的朋友來說,上面已經(jīng)包括了大部分我面試中遇到的點(diǎn)以及我認(rèn)為非常重要的基礎(chǔ)知識(shí)點(diǎn)蛀醉!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悬襟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拯刁,更是在濱河造成了極大的恐慌脊岳,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垛玻,死亡現(xiàn)場(chǎng)離奇詭異割捅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帚桩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門亿驾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人账嚎,你說我怎么就攤上這事莫瞬。” “怎么了郭蕉?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵疼邀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我召锈,道長(zhǎng)旁振,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任涨岁,我火速辦了婚禮拐袜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘梢薪。我一直安慰自己阻肿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布沮尿。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畜疾。 梳的紋絲不亂的頭發(fā)上赴邻,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音啡捶,去河邊找鬼姥敛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瞎暑,可吹牛的內(nèi)容都是我干的彤敛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼了赌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼墨榄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起勿她,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袄秩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后逢并,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體之剧,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年砍聊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了背稼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玻蝌,死狀恐怖蟹肘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情灶伊,我是刑警寧澤疆前,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站聘萨,受9級(jí)特大地震影響竹椒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜米辐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一胸完、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翘贮,春花似錦赊窥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扯再。三九已至,卻和暖如春址遇,著一層夾襖步出監(jiān)牢的瞬間熄阻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工倔约, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秃殉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓浸剩,卻偏偏與公主長(zhǎng)得像钾军,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绢要,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容