Objective-C 點(diǎn)滴記錄

iOS 基礎(chǔ)

  • 分類和擴(kuò)展有什么區(qū)別?可以分別用來做什么?分類有哪些局限性?分類的結(jié)構(gòu)體里面有哪些成員?
  • 講一下atomic的實(shí)現(xiàn)機(jī)制;為什么不能保證絕對的線程安全(最好可以結(jié)合場景來說)?
  • 被weak修飾的對象在被釋放的時候會發(fā)生什么?是如何實(shí)現(xiàn)的?知道sideTable么?里面的結(jié)構(gòu)可以畫出來么?
  • 關(guān)聯(lián)對象有什么應(yīng)用,系統(tǒng)如何管理關(guān)聯(lián)對象?其被釋放的時候需要手動將其指針置空么?
  • KVO的底層實(shí)現(xiàn)?如何取消系統(tǒng)默認(rèn)的KVO并手動觸發(fā)(給KVO的觸發(fā)設(shè)定條件:改變的值符合某個條件時再觸發(fā)KVO)?
  • Autoreleasepool所使用的數(shù)據(jù)結(jié)構(gòu)是什么?AutoreleasePoolPage結(jié)構(gòu)體了解么?
  • 講一下對象,類對象,元類,跟元類結(jié)構(gòu)體的組成以及他們是如何相關(guān)聯(lián)的?為什么對象方法沒有保存的對象結(jié)構(gòu)體里,而是保存在類對象的結(jié)構(gòu)體里?
  • class_ro_t 和 class_rw_t 的區(qū)別?
  • iOS 中內(nèi)省的幾個方法?class方法和objc_getClass方法有什么區(qū)別?
  • 在運(yùn)行時創(chuàng)建類的方法objc_allocateClassPair的方法名尾部為什么是pair(成對的意思)?
  • 一個int變量被__block修飾與否的區(qū)別?
    -為什么在block外部使用__weak修飾的同時需要在內(nèi)部使用__strong修飾?
  • RunLoop的作用是什么?它的內(nèi)部工作機(jī)制了解么?(最好結(jié)合線程和內(nèi)存管理來說)
  • 哪些場景可以觸發(fā)離屏渲染?(知道多少說多少)
  • iOS 實(shí)戰(zhàn)題

  • AppDelegate如何瘦身?

  • 反射是什么?可以舉出幾個應(yīng)用場景么?(知道多少說多少)

  • 有哪些場景是NSOperation比GCD更容易實(shí)現(xiàn)的?(或是NSOperation優(yōu)于GCD的幾點(diǎn),知道多少說多少)

  • App 啟動優(yōu)化策略?最好結(jié)合啟動流程來說(main()函數(shù)的執(zhí)行前后都分別說一下,知道多少說多少)

  • App 無痕埋點(diǎn)的思路了解么?你認(rèn)為理想的無痕埋點(diǎn)系統(tǒng)應(yīng)該具備哪些特點(diǎn)?(知道多少說多少)

  • 你知道有哪些情況會導(dǎo)致app崩潰,分別可以用什么方法攔截并化解?(知道多少說多少)

  • 你知道有哪些情況會導(dǎo)致app卡頓,分別可以用什么方法來避免?(知道多少說多少)

  • 網(wǎng)絡(luò)題

  • App 網(wǎng)絡(luò)層有哪些優(yōu)化策略?

  • TCP為什么要三次握手,四次揮手?

  • 對稱加密和非對稱加密的區(qū)別?分別有哪些算法的實(shí)現(xiàn)?

  • HTTPS的握手流程?為什么密鑰的傳遞需要使用非對稱加密?雙向認(rèn)證了解么?

  • HTTPS是如何實(shí)現(xiàn)驗(yàn)證身份和驗(yàn)證完整性的?

  • 如何用Charles抓HTTPS的包?其中原理和流程是什么?

  • 什么是中間人攻擊?如何避免?

  • 計算機(jī)系統(tǒng)題

  • 了解編譯的過程么?分為哪幾個步驟?

  • 靜態(tài)鏈接了解么?靜態(tài)庫和動態(tài)庫的區(qū)別?

  • 內(nèi)存的幾大區(qū)域,各自的職能分別是什么?

  • static和const有什么區(qū)別?

  • 了解內(nèi)聯(lián)函數(shù)么?

  • 什么時候會出現(xiàn)死鎖?如何避免?

  • 說一說你對線程安全的理解?

  • 列舉你知道的線程同步策略?

  • 有哪幾種鎖?各自的原理?它們之間的區(qū)別是什么?最好可以結(jié)合使用場景來說

  • 設(shè)計模式題

  • 除了單例,觀察者設(shè)計模式以外,還知道哪些設(shè)計模式?分別介紹一下

  • 最喜歡哪個設(shè)計模式?為什么?

  • iOS SDK 里面有哪些設(shè)計模式的實(shí)踐?

  • 設(shè)計模式是為了解決什么問題的?

  • 設(shè)計模式的成員構(gòu)成以及工作機(jī)制是什么?

  • 設(shè)計模式的優(yōu)缺點(diǎn)是什么?

  • 架構(gòu) & 設(shè)計題

  • MVC和MVVM的區(qū)別?MVVM和MVP的區(qū)別?

  • 面向?qū)ο蟮膸讉€設(shè)計原則了解么?最好可以結(jié)合場景來說。

  • 可以說幾個重構(gòu)的技巧么?你覺得重構(gòu)適合什么時候來做?

  • 你覺得框架和設(shè)計模式的區(qū)別是什么?

  • 看過哪些第三方框架的源碼,它們是怎么設(shè)計的?設(shè)計好的地方在哪里,不好的地方在哪里,如何改進(jìn)?(這道題的后三個問題的難度已經(jīng)很高了,如果不是太N的公司不建議深究)

  • 數(shù)據(jù)結(jié)構(gòu)&算法題

  • 鏈表和數(shù)組的區(qū)別是什么?插入和查詢的時間復(fù)雜度分別是多少?

  • 哈希表是如何實(shí)現(xiàn)的?如何解決地址沖突?

  • 排序題:冒泡排序,選擇排序,插入排序,快速排序(二路,三路)能寫出那些?

  • 鏈表題:如何檢測鏈表中是否有環(huán)?如何刪除鏈表中等于某個值的所有節(jié)點(diǎn)?

  • 數(shù)組題:如何在有序數(shù)組中找出和等于給定值的兩個元素?如何合并兩個有序的數(shù)組之后保持有序?

  • 二叉樹題:如何反轉(zhuǎn)二叉樹?如何驗(yàn)證兩個二叉樹是完全相等的?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 001 顛覆性的觀念 我們一向認(rèn)為利用好碎片化時間,能提高工作效率和改善生活質(zhì)量,但作者告訴我們這些并不是事實(shí)。...
    問石閱讀 407評論 1 2
  • 包子因?yàn)閯倓偝錾鷽]多久,身子小小的又愛吃,每天拖著圓鼓鼓的身子一步一搖的走著,所以我給它起名叫包子。它身上有股...
    YC微恙閱讀 315評論 0 0
  • 行走的一群人,有小孩、青年人、老人。 福利院中行走的一群人,有小孩、青年人、老人,互相扶持著,三兩成群的。 第一次...
    薛小曼閱讀 305評論 1 0

友情鏈接更多精彩內(nèi)容