2022年,iOS開發(fā)面試問題匯總(底層基礎(chǔ))

前言

收錄的iOS面試技術(shù)點夕春,可能沒那么多時間來總結(jié)答案未荒,有什么需要討論的地方歡迎大家底部留言。主要記錄一下大廠技術(shù)點及志,希望能幫助到正在面試或者將要面試的伙伴吧片排。
  • 更多iOS技術(shù)題合集:

iOS技術(shù)題大全(上)

iOS技術(shù)題大全(中)

iOS技術(shù)題大全(下)

Runloop

  1. RunLoop 的本質(zhì)是什么寨腔?
  2. Runloop和線程是什么關(guān)系?
  3. Runloop的底層數(shù)據(jù)結(jié)構(gòu)是什么樣的率寡?有幾種 運行模式(mode)迫卢?每個運行模式下面的 CFRunloopMode 是哪些?他們分別是什么職責(zé)冶共?
  4. Runloop 的監(jiān)聽狀態(tài)有哪幾種乾蛤?
  5. Runloop 的工作流程大概是什么樣的?
  6. Runloop 有哪些應(yīng)用捅僵?
  7. Source0家卖, Source1

線程、隊列庙楚、鎖

  1. 線程上荡、隊列的關(guān)系? 一個線程是否可能存在于兩個隊列?
  2. 隊列一定會創(chuàng)建線程嗎?
  3. 隊列是否可以無限制創(chuàng)建?
  4. PerformSelector & NSInvocation優(yōu)劣對比
  5. gcd 的使用,能不能取消馒闷?
  6. 如何進行線程崩壹瘢活
  7. 編程題 3個線程順序打印 0-100

GCD

  1. GCD、NSOperation區(qū)別, 功能方法區(qū)別.
  2. gcd queue 的區(qū)別
  3. group 如何實現(xiàn)barrier類似的功能?
  4. GCD group 如何實現(xiàn)同步的? (還能用什么實現(xiàn)?)
  5. 執(zhí)行一個 NSThread 任務(wù), 如何在執(zhí)行過程中讓他終止?
  6. iOS NSOperation 是如何終止/取消任務(wù)的?
  7. 多線程纳账,異步執(zhí)行(async)一個performSelector 會執(zhí)行么逛薇?如果加上 afterDelay呢?
  8. GCD 實現(xiàn) NSOperationQueue
  9. DispatchQoS的作用

KVC疏虫、KVO

  1. 結(jié)構(gòu)體的字節(jié)對齊和OC對象的字節(jié)對齊永罚?
  2. instance(實例對象)、class(類對象)卧秘、meta-class(元類對象)分別儲存了什么信息尤蛮?為什么要設(shè)計元類?
  3. KVO的具體實現(xiàn)流程斯议?訪問成員變量(類似self->age)會觸發(fā)KVO嘛产捞?KVC會觸發(fā)KVO嘛?KVO的兩個核心調(diào)用方法是哼御?
  4. KVC的原理坯临?getter 和 setter 的搜索策略是什么?KVC 有什么實際的應(yīng)用恋昼?

ISA看靠、類結(jié)構(gòu)

  1. isa 指針是什么?里面有哪些特殊的位數(shù)液肌?什么是TaggedPointer的優(yōu)化挟炬?
  2. isa指針里面都存了什么,32和64位分別講一下
  3. OC 是否支持重載? 為什么?
  4. IMP、SEL Method 都表示什么意思? 與 _cmd 相關(guān)
  5. class 的底層結(jié)構(gòu)是什么樣的谤祖?
  6. method_t 里包含什么婿滓?
  7. super 關(guān)鍵字的本質(zhì)是什么?
  8. OC的消息機制有幾步粥喜?

消息轉(zhuǎn)發(fā)

  1. 如何防止類似 unrecognized selector 的錯誤凸主?_objc_msgForward能干什么?
  2. runtime 有哪些應(yīng)用额湘?方法替換(method - Swizzling)有什么缺點卿吐?如何安全的進行方法替換?
  3. person有個+test方法锋华,實現(xiàn)輸出persion test嗡官,student繼承persion,頭文件定義-test方法毯焕,但沒實現(xiàn)谨湘,student *obj=new student [obj test] 結(jié)果是啥?
  4. 介紹下 Swizzle 的步驟? 具體到方法名.
  5. Swizzle 時, 我不想替換父類, 只想替換子類,怎么辦?
  6. Swizzle 的優(yōu)缺點? 缺點會導(dǎo)致什么問題?
  7. 方法交換和分類同時去hook同一個方法,結(jié)果會怎么樣? 具體交換的是什么芥丧?交換時是如何處理傳參數(shù)? 如果使用NSInvocation 的話, 是否能處理方法有返回值的場景?具體怎么處理的?

引用計數(shù)、weak坊罢、autoreleasepool

  1. 引用計數(shù)怎么實現(xiàn)的续担?weak怎么實現(xiàn)的?sideTable的 底層結(jié)構(gòu)是怎么樣的活孩? weak指針做了什么操作物遇?
  2. 對象的 release 是怎么處理的?
  3. 堆和棧的區(qū)別是什么?
  4. 棧憾儒、堆分別是否會被線程所共享?
  5. 內(nèi)存空間中除了堆和棧還有什么內(nèi)容?
  6. weak 如何把 對象重制為 nil
  7. assign询兴、strong 區(qū)別, 是否能用assign修飾 NSObject?
  8. AutoReleasePool(自動釋放池) 的底層實現(xiàn)是什么?他怎么實現(xiàn)及時釋放的起趾?子線程的釋放時機是怎么樣的诗舰?

內(nèi)存檢測、OOM

  1. ARC下哪些情況會造成內(nèi)存泄漏
  2. 內(nèi)存泄漏如何檢測?
  3. -OOM (Out Of Memory) 類型的 crash介紹下, 怎么檢測, 怎么處理?
  4. dealloc __weak會有什么問題

分類训裆、擴展眶根、關(guān)聯(lián)對象

  1. Catagory 和 extension 分別的使用場合和特點是什么?
  2. Catagory 的實現(xiàn)原理是什么边琉?Catagory 有哪些用處属百?Catagory 有什么局限?
  3. Class 和 他的 Catagory 同名方法的調(diào)用順序是什么变姨?Catagory A 和 Catagory B 同名方法的調(diào)用順序是如何族扰?如果想要不按照系統(tǒng)順序執(zhí)行要怎么做?
  4. +load 和 +initialize 的調(diào)用時機和順序?兩者區(qū)別是什么渔呵?
  5. Catagory 有 +load 方法么怒竿?+load 是什么時候調(diào)用的?能繼承么厘肮?會覆蓋Class 的 +load 么愧口?
  6. Catagory關(guān)聯(lián)對象(AssociateObject)的底層實現(xiàn)是什么?
  7. 方法如果寫了多個分類类茂、會執(zhí)行哪一個?執(zhí)行邏輯是什么樣?
  8. 關(guān)聯(lián)對象 weak 底層原理

NSMutableArray擴展

  1. [mutablearry alloc]init 和 [nsmublearray array]有什么區(qū)別
  2. 結(jié)構(gòu)體中為什么不能使用oc對象
  3. 我們在開發(fā)中使用文件的.mm是基于什么原因?
  4. string和NSString的區(qū)別
  5. mutablearray是怎么實現(xiàn)的耍属,mutablearray申請內(nèi)存空間干什么用,做增刪操作的時候內(nèi)存空間是怎么改變的巩检,可以用別的方法實現(xiàn)嗎厚骗?

Timer、鎖

  1. 你知道 iOS 有哪些鎖兢哭?性能分別怎么樣领舰?
  2. NSTimer、CADisplayLink迟螺、dispatch_source_t 的優(yōu)劣
  3. 自旋鎖和互斥鎖怎么選擇冲秽?
  4. NSNotificationCenter 跨線程及底層結(jié)構(gòu)是怎樣的?
  5. 讀寫鎖思路矩父、手寫一下
  6. atomic與@synchroize原理

TCP/IP協(xié)議族

  1. HTTP锉桑、HTTPS 區(qū)別?
  2. GET、POST 請求的 cache 怎么做,幾級緩存? 著重講本地緩存? 緩存有效期怎么做的?內(nèi)部緩存機制的優(yōu)化機制?如何防止內(nèi)存窍株、磁盤的緩存爆掉?
  3. HTTP 請求方法種類有哪些?(別忘記HEAD)
  4. TCP流量控制
  5. HTTPS的握手過程
  6. HTTPS與HTTP的區(qū)別? 非對稱加密民轴、對稱加密都是在哪一個步驟?
  7. DNS、工作在什么層球订、默認(rèn)端口?
  8. Ping原理
  9. 證書信息相關(guān)

二叉樹后裸、排序

  1. 堆的數(shù)據(jù)結(jié)構(gòu)
  2. 二叉搜索樹的作用
  3. 層序遍歷也叫什么遍歷,怎么實現(xiàn)
  4. 二叉樹中增加節(jié)點
  5. 堆排序冒滩、歸并排序微驶、快排原理,優(yōu)缺點
  6. 二叉樹反轉(zhuǎn)开睡, 數(shù)組形式
  • 更多iOS技術(shù)題答案合集:

iOS技術(shù)題大全(上)

iOS技術(shù)題大全(中)

iOS技術(shù)題大全(下)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祈搜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子士八,更是在濱河造成了極大的恐慌容燕,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婚度,死亡現(xiàn)場離奇詭異蘸秘,居然都是意外死亡官卡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門醋虏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寻咒,“玉大人,你說我怎么就攤上這事颈嚼∶兀” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵阻课,是天一觀的道長叫挟。 經(jīng)常有香客問我,道長限煞,這世上最難降的妖魔是什么抹恳? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮署驻,結(jié)果婚禮上奋献,老公的妹妹穿的比我還像新娘。我一直安慰自己旺上,他們只是感情好瓶蚂,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宣吱,像睡著了一般窃这。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凌节,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音洒试,去河邊找鬼倍奢。 笑死,一個胖子當(dāng)著我的面吹牛垒棋,可吹牛的內(nèi)容都是我干的卒煞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼叼架,長吁一口氣:“原來是場噩夢啊……” “哼畔裕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乖订,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤扮饶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后乍构,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甜无,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岂丘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陵究。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奥帘,靈堂內(nèi)的尸體忽然破棺而出铜邮,到底是詐尸還是另有隱情,我是刑警寧澤寨蹋,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布松蒜,位于F島的核電站,受9級特大地震影響钥庇,放射性物質(zhì)發(fā)生泄漏牍鞠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一评姨、第九天 我趴在偏房一處隱蔽的房頂上張望难述。 院中可真熱鬧,春花似錦吐句、人聲如沸胁后。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攀芯。三九已至,卻和暖如春文虏,著一層夾襖步出監(jiān)牢的瞬間侣诺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工氧秘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留年鸳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓丸相,卻偏偏與公主長得像搔确,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子灭忠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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

  • 聲明:面試是對自我審視的一種過程膳算,面試題和iOS程序員本身技術(shù)水平?jīng)]有對等關(guān)聯(lián),無論你能否全部答出弛作,都不要對自己產(chǎn)...
    Kevin_wzx閱讀 2,144評論 1 2
  • 基礎(chǔ)相關(guān) 什么是ARC涕蜂? block一般用那個關(guān)鍵字修飾,為什么映琳? 用@property聲明的NSString(或...
    6ffd6634d577閱讀 543評論 0 3
  • 金三銀四宇葱,相信最近很多人都在跳槽瘦真。那么面試題自然還是要看下的,在這我就把我手里收集到的面試題(朋友面試黍瞧,網(wǎng)上收集等...
    lp_lp閱讀 1,633評論 0 22
  • (iOS面試資料大全)[https://docs.qq.com/doc/DZlphVG9SU0FwUmVZ] 1....
    ios南方閱讀 1,274評論 0 3
  • 作為一個開發(fā)者诸尽,有一個學(xué)習(xí)的氛圍跟一個交流圈子特別重要,這是一個我的iOS開發(fā)交流群:130595548[http...
    iOS鑫閱讀 608評論 0 13