前言
最新收集了前兩個月的iOS面試題總結,答案這塊,就不細說了,畢竟有的題目也是拿不準,如果有不明白的,大家一起留言評論探討,大家一起努力!
網絡模塊:
1、http 的發展歷史 以及https的相對于http的加密過程
2、分別說一下tcp 和 udp 以及他們的區別和聯系;
3、http的超時默認從什么位置開始計算
4、http使用udp還是tcp鏈接以及每次發送一個http請求 就一定建立tcp鏈接嗎 為什么
5、tcp三次握手鏈接 四次斷開鏈接 問:tcp存在四次握手鏈接嗎 以及tcp存在三次握手斷開鏈接嗎?
6、為啥是出現四次握手?
7、tcp建立了幾個通道 ,分別是什么 ,發送端和接收端是同一個通道嗎?
算法模塊(可以刷題LeetCode):
1、如何判斷一個鏈表是否是雙向列表
2、搜索旋轉樹相關的問題
3、數組的排序問題
4、給定一個字符串,請你找出其中不含有重復字符的最長子串的長度。
5、給你一個二叉樹,請你返回其按層序遍歷得到的節點值
6、給定一個二叉樹,找出其最大深度。
7、兩個棧 實現一個隊列
.......
直接刷題就好了 iOS這塊的難度一般都在:簡單 中等 ;目前hard難度的比較少的!
iOS模塊(主要是OC):
1、atomic 和 nonatomic的區別 atomic一定是安全的嗎 為什么 舉個場景
2、category可以添加成員變量嗎 為什么? 如果對應的結構體有這個ivarList的數組 可以添加成員變量嗎 為什么
3、iOS的系統通知怎么實現的 接受線程和發送線程一定在同一個線程嗎 為什么 舉個例子
4、GCD NSThread NSOPeration 使用的場景和區別 以及NSoperation的幾種狀態分別是什么
5、block的實現原理(這塊問了很多 只要了解很透徹的話 這塊不是問題)
6、iOS的內存管理方式是什么 ARC和MRC有區別嗎 為什么
7、weak、strong 他們分別的實現原理
8、手寫一個單利(采用宏定義),以及為什么采用【super alloc] init】
9、對象的創見為什么要init 不要init可以嗎 為什么
10、一個NSobject 對象本身占用多少個字節(如何計算的) 以及蘋果為什么給對象都是16字節的倍數? 什么叫空間換時間
11、NSAutoRealesepool 的實現原理 以及何時給對象發送relese消息
12、app的性能優化--啟動優化說一下
13、NSRuntime NSRunloop 聯系 平時怎么使用 比如如何監聽卡頓 和 如何讓線程常駐
14、image的加載做成 以及如何優化
15、動態庫和靜態庫區別和聯系 平時怎么使用的 現在使用動態庫的目的是什么 (動態庫會增加啟動時間) 再說一下這種庫加載過程以及如何優化
17、詳細說一下事件的傳遞和響應過程 (注意:手勢的有優先級問題還有同時如何阻斷事件傳遞)
18、什么叫離屏渲染(要說的越詳細越好)
19、kvo的實現原理 以及如何手動觸發kvo
20、說一下以往項目中 最有成就感的項目 并詳細介紹使用到的技術點,以及如何攻破技術難點的
21、說一下寫時復制
22、swift的面向協議的理解
23、swift中的可變數組 為啥用var來修飾
24、說一下 無痕埋點以及如何實現
2021,祝大家都找到合適的高薪工作
- 對于答案,歡迎大家積極討論;整理不易,如果您覺得還不錯,麻煩在文末 “點個贊” ,謝謝您的支持