最新阿里騰訊頭條美團等iOS面試總結

前言 git

=========面試

最近春招一直在緊張的面試中,如今已經拿了頭條offer,因此也沒那麼緊張了。決定把面試題拿出來給你們分享一下,歡迎你們來一塊兒探討。如今先簡單的分享一下面試題。算法

美團一面

記不太清了23333數據庫

主要問項目的一些技術點編程

如何讓一個label靠左,一個label靠右,而後右邊的label可以徹底顯示json

算法奇數排在前面,偶數排在後面後端

智力題,一個騎手送餐,ABCD商店,送給abcd四我的設計模式

kvo的實現原理數組

消息調用的過程安全

get和post的區別

http有哪些部分

tcp和udp的區別

七層模型

美團二面

講一講響應鏈

如何經過一個view查找它所在的viewController

如何擴大view的響應範圍

微信分享大圖如何實現,從進程的角度

進程間的通訊方式,並舉例

兩個進程分別指向同一個地址空間並初始化一個值,分別輸出是什麼

算法,判斷一個字符串是否全部的大寫字母都在小寫字母前面

修改podfile文件後,怎麼用git diff顯示出修改後版本和當前版本的不一樣,讓我來設計

程序執行的過程

若是想要刪除本身的一段代碼,如何刪除(在程序執行的過程當中刪除)

用過腳本編程嗎

瞭解先後端嗎

各科成績,成績排名

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:761407670 進羣密碼000,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!

如下資料在羣文件可自行下載!

阿里一面

先介紹了項目,而後問了一些項目中的問題,而後開始問基礎

屬性的關鍵字

淺拷貝和深拷貝的區別

Block的循環引用、如何解決、原理

三種Block

Block和delegate的比較

kvo的實現原理

Autorelease pool的實現原理

消息轉發機制

線程死鎖的四個條件

進程和線程的區別

持久化

還問了數據庫的知識我當時說我全忘了就沒問了

中途還討論了massonery的約束應該寫在哪裏,我說應該寫在layoutSubViews,他說會調用屢次,而後爭論了一下子

阿里二面

介紹項目

性能優化

YYModel和AF源碼

如何本身設計json轉model

架構

迷之算法題

image.jpeg

阿里三面

一個安卓的面試官。。。。。

主要問了項目的一些東西 和給一些場景問我如何實現

自我介紹 介紹一些項目難點

主線程是相對於什麼而言的

一張圖片的內存佔用大小是由什麼決定的

索引的做用

索引的優缺點

在數組中找最小的k個數

淘寶下拉加載更多如何優化

淘寶頁面發送HTTP請求的過程

介紹一下MVVM

知道哪些設計模式

頭條一面

MVC的一些缺點

講一講其它架構

你知道哪些編碼方式

算法字符串翻轉

HTTPS

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

隊列和線程的關係

一道線程安全的題

有哪些鎖

屬性的關鍵字

assign能夠用於OC對象嗎

copy和strong的區別

weak如何實現自動賦nil

爲何不可變對象要用copy

assing可使用在對象中嗎

頭條二面

Pod update和pod install的區別

layoutIfNeeded和setNeedsLayout的區別

抓包工具抓取HTTPS的原理

isEquel和hash的關係

SD的源碼

bitmap的結構

可變數組的實現原理

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

如何避免if else

自旋鎖和互斥鎖的區別

頭條三面

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

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

數組的淺拷貝與深拷貝

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

基本就是走走形式了,主要就是問了一些我的方面的東西。。。。。

騰訊一面

介紹項目的網絡層

爲何要使用HTTP???爲何不直接用TCP

如何保證HTTP傳輸到達

HTTP頭部有哪些內容

講一講擁塞控制

MVVM如何實現綁定

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

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

進程和線程的區別

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

進程間通訊的方式

如何檢測應用是否卡頓

好像沒多少問題了,記不太清,而後他說完了,我感受好快,覺得要掛了,就強行講了些runloop和性能優化的東西,而後他說好了,你和下一輪面試官再說吧

騰訊二面

OC中對象的結構

多態

Ping是什麼協議

知道MTU嗎

TCP頭部多長,IP呢

線程同步的方式

iOS中有哪些鎖

MVC和MVVM的區別

瞭解哪些設計模式

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

看過哪些源碼,講講思路

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

字符串旋轉

找鏈表的倒數第k個結點

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

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

百度一面

我也不知道爲啥個人簡歷會被一個作底層開發的部門拿去,而後面試很尷尬,全是計算機基礎

大概回憶一下

進程和線程的區別

一個進程有哪些區

擁塞控制

進程間通訊的方式

七層模型

TCP和UDP的區別

傳輸層和網絡層分別是作什麼的

UDP能夠實現一對多??

算法 求數組的最長子數組

Http2.0如1.x的區別

寫在最後

以上的面試題確定是不完整的,只能根據個人印象記錄我能想起來的了,並且即時是一個看似簡單的題,你若是沒有真正弄明白它的原理的話,在面試過程當中你也頗有可能被問懵,因此必定要打好基礎,要知其然並知其因此然。

喜歡的話能夠點個贊:+1:或關注。

====================

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:761407670 進羣密碼000,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!

相關文章
相關標籤/搜索