iOS收集的一些面試題和答案精钮。

面試-A公司
面試題

  • 如果要你設(shè)計一個復(fù)雜頁面你會怎么處理威鹿?
  • 談?wù)勀銓δK化和組件化的看法。他們有哪些優(yōu)勢和缺點轨香。如何做到解耦专普。
  • 你認(rèn)為NSDictionary是怎么實現(xiàn)的?
  • 為什么會產(chǎn)生卡頓,什么是離屏渲染弹沽?為什么會產(chǎn)生離屏渲染?
  • NStimer和cgd的定時器有什么區(qū)別筋粗,為什么說NSTimer的定時器是不準(zhǔn)確的策橘。還有什么方式來實現(xiàn)定時器
  • iOS開發(fā)中都有哪些鎖,有什么區(qū)別娜亿。@synchronized這個鎖里有一個參數(shù)self丽已。有什么用,如果它被釋放了有什么后果买决,可不可以是其他對象沛婴,為什么吼畏?
  • 啟動優(yōu)化有哪些?
  • 如何讓你實現(xiàn)一個addobserver你會怎么設(shè)計嘁灯。有哪些需要注意的點(生成的新類是強引用還是弱引用)開源庫kvoviewcontroller以及rac的addobserve是如何做到不產(chǎn)生循環(huán)引用的
  • 如果任務(wù)a依賴于任務(wù)b和c的執(zhí)行泻蚊,你怎么處理
  • 你對flutter和RN有什么看法
  • 性能優(yōu)化你做了哪些工作
  • socket和tcp udp有什么區(qū)別,socket原理是什么丑婿,socket在app之間傳輸用的什么性雄。引申到http如何使用長連接 keep-alive的使用。
  • gcd的底層實現(xiàn)羹奉。我們能開辟的最大線程數(shù)是多少秒旋?默認(rèn)值是多少?
  • gcd中的notify和barrier有什么區(qū)別
    算法題
  • 如何判斷兩個樹是否相等
  • 我們在統(tǒng)計過程中需要知道一個VC上有多少個子view 你怎么處理诀拭?用算法實現(xiàn)迁筛。
    小細(xì)節(jié)
  • setobject:forkey key除了用字符串能用對象嗎?
    面試題-B公司

面試題:

  • 談?wù)勀銓κ录憫?yīng)機制的看法
  • 內(nèi)存相關(guān)
  • 談?wù)勀銓?nèi)存管理的看法
  • arc下能否自己控制對象的生命周期
  • coreFoundation中我們用__bridge來處理與oc之間的轉(zhuǎn)換為什么呢耕挨?結(jié)構(gòu)體中為什么不能使用oc對象细卧,為什么?
  • 多線程問題
  • 開發(fā)過程中你遇到過哪些線程的問題俗孝,你是怎么解決的酒甸?
  • 鎖相關(guān)
  • iOS開發(fā)中有哪些鎖?他們有哪些應(yīng)用場景赋铝?他們有什么區(qū)別插勤?
  • 循環(huán)引用問題
  • 循環(huán)引用是如何產(chǎn)生的?你是怎么解決的革骨?你是怎么檢測循環(huán)引用的农尖?如果用第三方工具 請簡述其原理
  • 性能優(yōu)化相關(guān)
  • 為什么會產(chǎn)生離屏渲染?為什么圓角會產(chǎn)生離屏渲染 怎么檢測 所有的UI都會產(chǎn)生離屏渲染嗎良哲?為什么盛卡?
  • 如何設(shè)計出一個復(fù)雜的頁面?
  • 使用autolayout是否會造成卡頓筑凫,為什么滑沧?怎么解決?
  • 你是怎么做性能優(yōu)化的巍实?
  • 項目中單例多嗎滓技?單例過多的話你怎么處理?
  • 包瘦身是怎么做的棚潦?比如刪除無用圖片 壓縮圖片以及刪除無用文件
  • 怎么刪除無用文件的令漂?怎么判斷方法是否使用以及類是否使用
  • mach-o是干嘛用的?
  • bitcode是做什么的?
  • 假設(shè)你使用的是友盟叠必,友盟是怎么根據(jù)我們的崩潰信息定位到崩潰代碼位置的荚孵?
  • 模塊化 組件化問題
  • 項目為什么使用模塊化 組件化 他們有什么不同,有什么優(yōu)缺點
  • apns相關(guān)
  • 你了解過第三方推送嗎?第三方例如極光是怎么實現(xiàn)消息推送的纬朝?應(yīng)用殺死的時候和應(yīng)用處于后臺以及前臺的時候收叶,傳輸方式有什么不同?apns和socket有什么不同玄组?
  • runloop和runtime相關(guān)
  • runloop的啟動以及退出方式有哪些滔驾?
  • 談?wù)勀銓untime和runloop的理解。
  • 定時器相關(guān)
  • NSTimer為什么是不準(zhǔn)確的俄讹?你還知道哪些定時器哆致?他們的各自使用場景有哪些?
  • jpg和png有什么區(qū)別患膛?
  • 網(wǎng)絡(luò)相關(guān)
  • http和https有什么不同 他們是怎么建立起鏈接的摊阀?
  • tcp 和udp有什么不同
  • 抓包的原理是什么?如何避免自己的app不被別人抓包
  • 談?wù)勀銓ocket有什么看法
  • 假如app由登錄模式變?yōu)橛慰湍J阶俚牛绾稳∠卿浤J较碌恼埱蠡蛉蝿?wù)胞此,你有什么方案?
  • 底層原理相關(guān)
  • 你有沒有看過gcd的源碼跃捣,談?wù)勀銓cdglobal的看法
  • 如果讓你實現(xiàn)一個kvo你怎么實現(xiàn)漱牵?有哪些需要注意的點。第三方開源的KVOController和kvo比有什么優(yōu)缺點疚漆。rac中的addobserver原理是什么酣胀?
  • 三方庫源碼相關(guān):
  • 如果要你設(shè)計一個網(wǎng)絡(luò)框架你怎么設(shè)計?
  • 如果要你設(shè)計一個圖片緩存框架你怎么設(shè)計娶聘?
  • flutter問題
  • 為什么flutter可以hotrelaod 而oc不可以闻镶?如果oc要實現(xiàn)hot reload你認(rèn)為有什么技術(shù)難度?
  • java問題
  • 在oc中如何實現(xiàn)java接口的功能
    面試題-C公司

面試題:

  • 屬性關(guān)鍵字相關(guān)
  • 你都使用過哪些屬性關(guān)鍵字丸升?
  • atomic實現(xiàn)原理是什么铆农?他是怎么保證安全的?
  • 如果用readonly修飾系統(tǒng)會自動為當(dāng)前屬性生成setter和getter方法嗎狡耻?
  • 用strong修飾符修飾的有哪些墩剖?如果改為copy會有什么隱患?
  • @dynamic @synthesize 有什么區(qū)別夷狰?他們的應(yīng)用場景在哪里涛碑?(系統(tǒng)會自動為我們生成setter和getter方法嗎?)
  • 內(nèi)存管理相關(guān)
  • 談?wù)刴rc和arc下的copy
  • mrc和arc混編的時候 如果mrc要調(diào)用arc中的block 要怎么處理孵淘?
  • 對象什么時候會被釋放?如果對象在應(yīng)該釋放的時候沒有釋放歹篓,有哪些可能瘫证?
  • 談?wù)刬OS是怎么實現(xiàn)引用計數(shù)機制的揉阎?
  • dealloc方法的執(zhí)行步驟有哪些?
  • category 和extention 有什么區(qū)別背捌?
  • 對代理添加屬性的時候毙籽,系統(tǒng)會為我們自動生成setter和getter方法嗎?
  • +load和+initialize有什么不同 他們都應(yīng)用在哪個場景毡庆?假如分類和當(dāng)前類都有l(wèi)oad方法那么方法的執(zhí)行順序是怎么樣的坑赡?如果當(dāng)前類和分類中都有initialize方法執(zhí)行順序又是什么樣呢?如果有多個分類呢么抗?
  • 假如當(dāng)前類和分類中有相同方法名的方法毅否,他們的執(zhí)行順序是什么樣的呢?為什么蝇刀?如果想要執(zhí)行方法的時候優(yōu)先執(zhí)行當(dāng)前類的方法你怎么處理螟加?
  • 通過關(guān)聯(lián)對象生成的屬性,它是當(dāng)前類維護(hù)還是應(yīng)用統(tǒng)一來維護(hù)吞琐?關(guān)聯(lián)對象什么時候被釋放捆探?
  • 集合相關(guān)深拷貝和淺拷貝以及集合對象的實現(xiàn)原理。假如10000條數(shù)據(jù)需要存儲并且需要查詢站粟,你會選用數(shù)組還是字典還是集合黍图。為什么?集合和字典的實現(xiàn)方式有什么區(qū)別奴烙?
  • 生命周期相關(guān) UIViewController的生命周期都會執(zhí)行哪些方法助被?從A視圖push到B視圖的時候 A會執(zhí)行哪些方法 B會執(zhí)行哪些方法?
  • VC上有一個按鈕點擊按鈕原本是要跳轉(zhuǎn)到下一個頁面的缸沃,但是現(xiàn)在事件不響應(yīng)了恰起,有哪些原因造成的。
  • UIView和CALayer有什么區(qū)別趾牧?他們之間分工不同检盼,符合哪一個設(shè)計原則?
  • 循環(huán)引用相關(guān)
  • 談?wù)勀銓ρh(huán)引用的理解翘单?哪些場景會產(chǎn)生循環(huán)引用
  • 數(shù)據(jù)存儲相關(guān)
  • 你都用過哪些數(shù)據(jù)存儲方式吨枉?他們各自的應(yīng)用場景有哪些?他們有什么不同哄芜?NSUserDefaults 歸檔接檔 plist 數(shù)據(jù)庫
  • 數(shù)據(jù)庫相關(guān)
  • 一些簡單的數(shù)據(jù)庫查詢語句 條件查詢等 以及表創(chuàng)建應(yīng)該怎么寫
  • 如果數(shù)據(jù)庫需要更新100w條數(shù)據(jù)你有什么方法進(jìn)行更新
  • FMDB 是怎么實現(xiàn)事務(wù)的貌亭?談?wù)勀銓κ聞?wù)的理解。
  • 網(wǎng)絡(luò)相關(guān)
  • http請求的cache你是怎么用的认臊?實例:假如我有一個請求圃庭,如果服務(wù)端數(shù)據(jù)不變的時候我不再進(jìn)行UI處理了,這個怎么解決?
  • 關(guān)于https的握手和揮手談?wù)勀愕睦斫狻?br> 面試題-D公司

面試題:

  • 你是怎么做性能優(yōu)化的(這個有點寬泛剧腻,可以從內(nèi)存上拘央,啟動速度上,檢測內(nèi)存泄漏以及卡頓上來說)你用什么工具來檢測的书在,檢測的原理是什么灰伟?有沒有做一些自動化的檢測處理。
  • 你是怎么處理包瘦身的儒旬?
  • 如何處理才能讓app省電栏账。你是怎么檢測到耗電的?有以下場景:有個地方要頻繁的去請求栈源,你怎么處理挡爵?
  • 卡頓的原因是什么?你怎么去處理和定位卡頓的問題凉翻。
  • 如果讓你設(shè)計一個埋點統(tǒng)計的方案你會怎么處理了讨?
  • swift和oc相比有什么優(yōu)缺點。你認(rèn)為swift比oc打包體積大的原因是什么制轰?
  • 假如現(xiàn)在數(shù)據(jù)庫中有100w條數(shù)據(jù)前计。這些數(shù)據(jù)需要更新現(xiàn)在有200w條數(shù)據(jù)你怎么能查出相同的和不同的數(shù)據(jù)。實現(xiàn)更新和插入操作垃杖。
  • iOS13有什么新功能男杈?你是怎么處理劉海屏的適配以及深色模式的。
  • wwdc你平车鞣看嗎伶棒?講一下最新的一些技術(shù)。你學(xué)習(xí)的途徑有哪些彩库?
  • 遇到技術(shù)問題你是通過哪些途徑解決的肤无?
  • 你是怎么做代碼管理的?

答案:
你認(rèn)為NSDictionary是怎么實現(xiàn)的骇钦?
一宛渐、NSDictionary使用原理
1.NSDictionary(字典)是使用hash表來實現(xiàn)key和value之間的映射和存儲的,hash函數(shù)設(shè)計的好壞影響著數(shù)據(jù)的查找訪問效率眯搭。

  • (void)setObject:(id)anObject forKey:(id)aKey;

2.Objective-C中的字典NSDictionary底層其實是一個哈希表窥翩,實際上絕大多數(shù)語言中字典都通過哈希表實現(xiàn),

二鳞仙、哈希的原理
哈希概念:哈希表的本質(zhì)是一個數(shù)組寇蚊,數(shù)組中每一個元素稱為一個箱子(bin),箱子中存放的是鍵值對棍好。

三仗岸、哈希表的存儲過程:
1.根據(jù)key計算出它的哈希值h允耿。
2.假設(shè)箱子的個數(shù)為n,那么這個鍵值對應(yīng)該放在第(h % n)個箱子中爹梁。
3.如果該箱子中已經(jīng)有了鍵值對右犹,就使用開放尋址法或者拉鏈法解決沖突。
在使用拉鏈法解決哈希沖突時姚垃,每個箱子其實是一個鏈表,屬于同一個箱子的所有鍵值對都會排列在鏈表中盼忌。
哈希表還有一個重要的屬性:負(fù)載因子(load factor)积糯,它用來衡量哈希表的空/滿程度,一定程度上也可以體現(xiàn)查詢的效率谦纱,計算公式為:
負(fù)載因子=總鍵值對數(shù)/箱子個數(shù)
負(fù)載因子越大看成,意味著哈希表越滿,越容易導(dǎo)致沖突跨嘉,性能也就越低川慌。因此,一般來說祠乃,當(dāng)負(fù)載因子大于某個常數(shù)(可能是1梦重,或者0.75等)時,哈希表將自動擴容亮瓷。
重哈希概念:
哈希表在自動擴容時琴拧,一般會創(chuàng)建兩倍于原來個數(shù)的箱子,因此即使key的哈希值不變嘱支,對箱子個數(shù)取余的結(jié)果也會發(fā)生改變蚓胸,因此所有鍵值對的存放位置都有可能發(fā)生改變,這個過程也稱為重哈希(rehash)除师。
哈希表的擴容并不總是能夠有效解決負(fù)載因子過大的問題沛膳。假設(shè)所有key的哈希值都一樣,那么即使擴容以后他們的位置也不會變化汛聚。雖然負(fù)載因子會降低锹安,但實際存儲在每個箱子中的鏈表長度并不發(fā)生改變,因此也就不能提高哈希表的查詢性能贞岭。
四八毯、總結(jié),細(xì)心的讀者可能會發(fā)現(xiàn)哈希表的兩個問題:
1.如果哈希表中本來箱子就比較多瞄桨,擴容時需要重新哈希并移動數(shù)據(jù)话速,性能影響較大。
2.如果哈希函數(shù)設(shè)計不合理芯侥,哈希表在極端情況下會變成線性表泊交,性能極低乳讥。
出處鏈接:http://www.reibang.com/p/d7e4c902e1df

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市廓俭,隨后出現(xiàn)的幾起案子云石,更是在濱河造成了極大的恐慌,老刑警劉巖研乒,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汹忠,死亡現(xiàn)場離奇詭異,居然都是意外死亡雹熬,警方通過查閱死者的電腦和手機宽菜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來竿报,“玉大人铅乡,你說我怎么就攤上這事×揖” “怎么了挥等?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵痰娱,是天一觀的道長状原。 經(jīng)常有香客問我藻三,道長,這世上最難降的妖魔是什么捂襟? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任咬腕,我火速辦了婚禮,結(jié)果婚禮上葬荷,老公的妹妹穿的比我還像新娘涨共。我一直安慰自己,他們只是感情好宠漩,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布举反。 她就那樣靜靜地躺著,像睡著了一般扒吁。 火紅的嫁衣襯著肌膚如雪火鼻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天雕崩,我揣著相機與錄音魁索,去河邊找鬼。 笑死盼铁,一個胖子當(dāng)著我的面吹牛粗蔚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饶火,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鹏控,長吁一口氣:“原來是場噩夢啊……” “哼致扯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起当辐,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抖僵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缘揪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耍群,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年找筝,在試婚紗的時候發(fā)現(xiàn)自己被綠了世吨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡呻征,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出罢浇,到底是詐尸還是另有隱情陆赋,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布嚷闭,位于F島的核電站攒岛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胞锰。R本人自食惡果不足惜灾锯,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗅榕。 院中可真熱鬧顺饮,春花似錦、人聲如沸凌那。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帽蝶。三九已至赦肋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間励稳,已是汗流浹背佃乘。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驹尼,地道東北人趣避。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像扶欣,于是被迫代替她去往敵國和親鹅巍。 傳聞我的和親對象是個殘疾皇子千扶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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