iOS面試:騰訊、頭條等面試題參考

序言

疫情基本控制,同時面試也漸漸開始了,如下iOS面試題僅供參考,畢竟面試是不可控的,但懂得越多,天然機會越大!面試

騰訊面試題

一面算法

一、介紹一下實習的項目,任務分工,作了哪些工做?介紹實習內容數據庫

二、網絡相關的:項目裏面使用到什麼網絡庫,用過ASIHTTP庫嗎設計模式

三、斷點續傳怎麼實現?須要設置什麼?數組

四、在杭州HTTP請求服務器響應快,可能離服務器距離近,而在深圳訪問就很慢很慢,會是什麼緣由?若是用戶投訴,怎麼分析這個問題?緩存

五、HTTP請求的哪些方法用過?何時選擇get、post、put?安全

六、TCP創建鏈接的過程,斷開鏈接的過程,爲何是四次握手?服務器

七、項目裏面的數據存儲都用了哪些?知道iOS裏面有哪些數據存儲方法?何時該用哪些方法存儲?網絡

八、MVVM如何實現綁定數據結構

九、block和通知的區別,分別適用什麼場景

十、算法。連續問了好幾個,都是數組,層層遞進的,可是我忘了,只記得最後是找出數組

十一、中重複的數字

十二、進程和線程的區別

1三、程序在運行時操做系統除了分配內存空間還有什麼

1四、進程間通訊的方式

1五、如何檢測應用是否卡頓

1六、發佈出去的版本,怎麼收集crash日誌?不使用bugly等第三方平臺或者這些第三方平臺是怎麼收集crash日誌的?

1七、在block裏面使用_property會形成循環引用嗎?怎麼解決?除了使用self->_property,可使用valueforkey來訪問嗎 在block裏面能夠修改它的值嗎setvalueforkey?能夠修改它的值,能夠用valueforkey來解決,顯式的的使用self,block外先持有self的弱引用。

二面

一、OC中對象的結構

二、多態

三、Ping是什麼協議

四、知道MTU嗎

五、ARC和MRC的本質區別是什麼?

六、NSThread,GCD,NSOperation相關的。開啓一條線程的方法?線程能夠取消嗎?

七、子線程中調用connection方法,爲何不回調?由於沒有加入runloop,執行完任務就銷燬了,因此沒有回調。

八、MVC和MVVM的區別

九、瞭解哪些設計模式

十、存一個通信錄,包括增刪改查,用什麼數據結構

十一、autorelease變量何時釋放?手動添加的是大括號結束的時候釋放,系統自動釋放是在

十二、當前runloop循環結束的時候

1三、那子線程中的autorelease變量何時釋放?

1四、子線程裏面,須要加autoreleasepool嗎

1五、GCD和NSOperation的區別?

1六、項目裏面遇到過死鎖嗎?怎麼解決?數據庫訪問原本就是線程安全的,不會形成死鎖啊。什麼是死鎖?

1七、Viewcontroller的生命週期?

1八、在init方法裏面,設置背景顏色,會生效嗎 會生效。爲何會?

1九、WWDC公佈了哪些新特性?對蘋果系列的最新特性有關注嗎

20、看過哪些源碼,講講思路

2一、兩個鏈表找第一個相同結點

2二、字符串旋轉

2三、找鏈表的倒數第k個結點

2四、把一個鏈表比某個值大的放在左邊,比它小的放在右邊

2五、二叉樹的中序遍歷,非遞歸


頭條面試題

一面

一、自我介紹

二、項目相關

三、怎麼自定義導航跳轉

四、談談runtime的理解

五、KVC的用途

六、使用method swizzling要注意什麼?(進行版本迭代的時候須要進行一些檢驗,防止系統庫的函數發生了變化)

七、談對引用計數的理解

八、談談runloop的理解

九、runloop有哪些狀態

十、autoreleasepool的使用場景

十一、TableView優化,怎麼減小卡頓

十二、copy assign retain weak關鍵詞

1三、JSON轉Model

1四、代碼佈局

1五、多屏幕適配

1六、HTTP請求頭和響應頭

1七、Cookie

1八、NSCache

1九、本身設計一個緩存器

20、怎麼實現LRU

2一、SDWebImage

2二、二叉樹先序遍歷(遞歸和非遞歸)

二面

一、MVC的一些缺點

二、講一講其它架構

三、你知道哪些編碼方式

四、算法字符串翻轉

五、多線程的方式和它們的區別

六、隊列和線程的關係

七、一道線程安全的題

八、有哪些鎖

九、屬性的關鍵字

十、assign能夠用於OC對象嗎

十一、copy和strong的區別

十二、weak如何實現自動賦nil

1三、爲何不可變對象要用copy

1四、assing可使用在對象中嗎

1五、Pod update和pod install的區別

1六、layoutIfNeeded和setNeedsLayout的區別

1七、抓包工具抓取HTTPS的原理

1八、isEquel和hash的關係

1九、bitmap的結構

20、可變數組的實現原理

2一、如何hook一個對象的方法,而不影響其它對象

2二、如何避免if else

2三、自旋鎖和互斥鎖的區別

三面

一、介紹項目,主要介紹本身強項一點的地方

二、數組cop后里面的元素會複製一份新的嗎

三、數組的淺拷貝與深拷貝

四、TCP爲何是三次握手和四次揮手

頭條一直都是視頻面,並且是一條龍服務。整體來講感受不錯,反正主要就是須要基礎足夠紮實;


快手面試題

一面

  1. iOS反射機制

  2. iOS的timer和CADisplay的區別

  3. 二叉樹,二叉平衡樹,AVL,紅黑樹,B樹的區別

  4. 二叉樹公共節點

  5. 隨機數生成,真隨機數和僞隨機數

  6. 不用第三者,怎麼交換兩個數

  7. 1000個瓶子,裏面有1瓶毒藥,只有10只老鼠,老鼠吃了以後一星期會死亡,怎麼測試。

二面

  1. UI的渲染步驟,視圖打包流程,cpu和gpu工做,爲何要雙緩衝區

  2. 圖片怎麼顯示的,以及圖片緩衝區

  3. NSObject結構體裏面有什麼,大小爲何是16字節

  4. KVO怎麼實現,_會不會觸發,成員變量會不會觸發,kvc+成員變量會不會觸發,不用setter怎麼觸發kvo

  5. 操做系統內存佈局,有什麼區

  6. 一個OC對象的內存佈局

  7. 滑動優化怎麼搞

  8. 什麼是runtime,什麼是runloop,有幾種mode

  9. NSObject的內存佈局

  10. isa指針和super指針

  11. 元類是什麼

  12. 全部OC對象都繼承與NSObject嗎,id是什麼

  13. SDWebImage的清除緩存策略

  14. block是什麼

  15. LRU算法怎麼實現

  16. Swift和OC的方法調用

  17. 兩個鏈表的公共結點

  18. 鏈表中環開始的地方,原理說出來

  19. 項目裏面最體現你技術的點。

三面

1.什麼是hash

2.hash的具體實現,程h序裏面一個對象怎麼經過hash定位到具體的內存區。

3.hash數組擴容

4.一個天平,4個砝碼,能秤出多少種重量。


其餘面試資料(部分展現)

【舒適提醒:有須要iOS面試題,能夠掃碼文章末尾二維碼進羣獲取】

相關文章
相關標籤/搜索