轉(zhuǎn)載自:https://cloud.tencent.com/developer/article/2006176
Okcoin
1、項(xiàng)目中比較熟悉的問題
2、App如何減size,如何優(yōu)化,資源如何減小
3、DNS解析
4、網(wǎng)絡(luò)四層模型
5、KVO的原理,為什么要在子類重寫setter方法而不在自身
6、圖片渲染流程
7、runtime消息轉(zhuǎn)發(fā)的過程,動(dòng)態(tài)解析和消息轉(zhuǎn)發(fā)的階段
8、class類的結(jié)構(gòu)體
9、class_rw_t與class_ro_t有啥區(qū)別
10、如果runtime調(diào)用的是父類的方法會(huì)按照什么順序
11、求兩條鏈表相交的第一個(gè)節(jié)點(diǎn)
12、runloop是用來做什么的
13、GCD和NSOperation本質(zhì)的區(qū)別是什么
14、信號(hào)量、如果有兩組任務(wù)執(zhí)行,需要先執(zhí)行某兩組,再執(zhí)行另外兩組,有多少種方式?
15、redux的工作流程
16、__block最后變成了什么,block有幾種類型
17、weak指針的實(shí)現(xiàn)原理
18、自動(dòng)釋放池的結(jié)構(gòu)
19、 基礎(chǔ)修飾符,aotomic和noatomic的區(qū)別
20、給鎖排一下序
21、子線程要是不開啟runloop,它會(huì)運(yùn)行在什么位置
22、HTTP2.0和HTTP1.x的區(qū)別
23、copy和strong的區(qū)別
24、組件化
25、wkwebview與原生交互
26、sdK開發(fā)
27、通知的實(shí)現(xiàn)原理
28、block如何解決循環(huán)引用
天眼查
1、項(xiàng)目介紹,優(yōu)化方面、RN
2、runloop卡頓監(jiān)測(cè)
3、kvc的調(diào)用順序和原理
4、kvo的原理、手動(dòng)實(shí)現(xiàn)kvo。如果用setvalue實(shí)現(xiàn)可以嗎
5、touch事件的分發(fā)、查找的過程、如果要求touch子視圖擴(kuò)展點(diǎn)擊范圍應(yīng)該怎么做
6、isa指針
7、block有幾種類型,分別在什么情況下表示
8、字符串的壓縮算法
9、https和http的區(qū)別
10、https的加密過程,https在傳輸過程屬于什么加密
11、多線程、信號(hào)量
12、oc2mango熱發(fā)的原理
13、OC組件化、RN組件化
14、oc對(duì)象結(jié)構(gòu)體
老虎國(guó)際
1、項(xiàng)目做了什么事情
2、消息轉(zhuǎn)發(fā)的原理,runtime做了什么事情
3、AOP切片
4、用Instrument做了什么事情,插
5、對(duì)缺頁異常做了什么優(yōu)化,如何查看編譯過后的方法順序
6、什么情況下會(huì)產(chǎn)生離屏渲染
7、runloop怎樣做性能檢測(cè)的
8、runloop和多線程有什么關(guān)系
9、子線程如何?;睿骶€程有runloop?主線程有runloop?
10、AFNWorking中3.0為什么取消了runloop的時(shí)間監(jiān)測(cè)
11、SDWebImage的實(shí)現(xiàn)
12、n個(gè)階梯,只能爬1級(jí)或2級(jí),有多少種方法
13、bridge通信的一個(gè)過程、RN的通信過程
14、簡(jiǎn)單工廠和抽象工廠有什么區(qū)別
15、單例模式?單例模式重寫的allocwithzoom的zoom指的是什么
16、dispatch_once的源碼有了解過嗎
17、isa指針有什么了解
18、數(shù)據(jù)持久化用的是什么
19、http請(qǐng)求的緩存字段有了解嗎
20、組件化url scheme的方式和其他組件化方式的優(yōu)缺點(diǎn)
21、分類的源碼有看過?既然是逆序的方式,要如何調(diào)用前面編譯的方法使其不被覆蓋?
22、MVVM模式的優(yōu)缺點(diǎn)
23、如何使用RAC以及它的利弊
24、CPU和GPU的區(qū)別,圖片渲染做過嗎
分貝通
1、用過什么組件化,url-router的方式暴露出的方法,參數(shù)是用什么類型來傳遞的
2、項(xiàng)目里面的流程說具體點(diǎn)
3、MVVM和MVC的選擇基于什么考慮,項(xiàng)目中的用途,畫出MVVM的調(diào)用關(guān)系
4、RAC的具體用法
5、NSArray和NSSet的區(qū)別,如果一萬個(gè)數(shù)里面取某個(gè)數(shù)字用那種方法好,NSSet取值的key是多少
6、內(nèi)存管理這塊了解嗎
7、block聲明為什么要用copy?__block是什么,它捕獲的是什么變量?為什么加了__block就能改變捕獲變量的值?
8、如果有兩個(gè)任務(wù)需要先執(zhí)行,再執(zhí)行別的任務(wù),你會(huì)怎么解決?具體的參數(shù)是什么?
9、啟動(dòng)優(yōu)化和卡頓監(jiān)測(cè)、tableview的優(yōu)化
10、屏幕成像的原理
11、離屏渲染是什么?有沒有什么情況下離屏渲染是有作用的
12、用Instrument做了什么?監(jiān)控內(nèi)存具體怎么做的,怎么查看缺頁異常?
13、runtime在項(xiàng)目里怎么用的,如果調(diào)一個(gè)類的類方法沒有實(shí)現(xiàn),但是實(shí)現(xiàn)了這個(gè)類的同名實(shí)例方法,會(huì)發(fā)生什么事情。
14、類對(duì)象的isa指針最終指向的位置以及父類最終指向的位置
15、最近看的書講的什么內(nèi)容
16、如果你來公司能為公司帶來什么
字節(jié)
1、RN和原生的分工RN與原生的交互、接口的設(shè)計(jì)
2、項(xiàng)目的整體架構(gòu)
3、原生與RN通信的接口是如何維護(hù)的,RN和原生通信,會(huì)遇見iOS和安卓不一致的問題,有什么辦法保持一致
4、RN的基本原理,剛才說的dom映射做了哪些優(yōu)化來保證頁面更新不卡頓
5、你們項(xiàng)目的RN引擎是單實(shí)例還是多實(shí)例
6、介紹一下redux的整個(gè)概念
7、你還記得有哪些計(jì)算狀態(tài)的函數(shù)(combine,provide)
8、為什么選擇redux,有接觸過其他的管理狀態(tài),mobix有接觸過嗎
9、性能工具,主要是做了哪些呢?(此處說了交換方法,卡頓監(jiān)測(cè))
10、卡頓監(jiān)測(cè)通過什么做的
11、圖片渲染和顯示原理
12、安裝包瘦身
13、除了APPCode,還能用哪種方式檢測(cè)無用代碼
14、說一下APP啟動(dòng)的流程(動(dòng)態(tài)庫,計(jì)算rebase偏移地址,分類,初始化)
15、直播、介紹一下直播的流程,從視頻錄制到另一臺(tái)手機(jī)看見的流程
16、判斷鏈表是否有環(huán)
17、iOS中數(shù)組的多讀單寫
18、iOS如何做hook
19、Uni-app介紹了一下
20、MVVM的持有關(guān)系
小米
1、 TCP和UDP,三次握手,追問改成兩次會(huì)怎樣,線程同步機(jī)制
2、 斐波拉契數(shù)列
3、反轉(zhuǎn)鏈表
4、RN跟原生相比的優(yōu)劣,組件生命周期,項(xiàng)目基于RN哪個(gè)版本開發(fā),雙端適配問題
5、平常如何學(xué)習(xí),性能優(yōu)化,項(xiàng)目難點(diǎn)在哪
6、 事件傳遞機(jī)制和響應(yīng)機(jī)制
7、 什么時(shí)候view不會(huì)響應(yīng)觸摸事件,如何響應(yīng)view以外的事件
8、 自動(dòng)釋放池
9、 內(nèi)存管理機(jī)制
10、 weak關(guān)鍵詞在什么情況下用,與assgin的區(qū)別
11、 weak底層原理
12、什么時(shí)候會(huì)報(bào)unrecognized selector異常,底層實(shí)現(xiàn)原理,消息發(fā)送
13、 runloop
14、 使用過哪些三方庫
15、問了些組件化的問題
美團(tuán)外賣商家端
1、uni-app這個(gè)東西是做什么的,在你看來有哪些利弊
2、 從前臺(tái)到后臺(tái)的一次請(qǐng)求經(jīng)歷了哪些階段?
3、 http/https的工作過程和區(qū)別、它們屬于五層中的哪一層
4、 三次握手的原理
5、get/put/post/delete請(qǐng)求方式
6、 項(xiàng)目里面你做了什么性能優(yōu)化和啟動(dòng)改造
7、 為什么WKWebview的性能比UIWebview的性能高
8、 runtime的消息轉(zhuǎn)發(fā)機(jī)制
9、 runtime的具體用法
10、 KVC
11、 @synthesize和@dynamic分別有什么作用
12、36匹馬,六個(gè)跑道。沒有記時(shí)器等設(shè)備,用最少的比賽次數(shù)算出跑的最快的馬
13、setNeedsDisplay、setNeedsLayout、layoutIfNeed區(qū)別
14、MGJRouter的作用
貨拉拉
1、項(xiàng)目里面值得認(rèn)可的部分、RN橋接的一些東西
2、 MVVM和MVC
3、 調(diào)試奔潰的工具
4、 做了什么操作讓優(yōu)化項(xiàng)目
5、get和post、http協(xié)議、網(wǎng)絡(luò)請(qǐng)求這塊問得比較多
6、 數(shù)據(jù)傳輸?shù)母袷絡(luò)son?xml?等等
7、 后臺(tái)返回的數(shù)據(jù)是多少K的,大文件傳輸怎么辦
8、數(shù)據(jù)庫的一些操作
9、iOS存儲(chǔ)方式
10、TCP/IP協(xié)議
11、ARC引用計(jì)數(shù)、內(nèi)存管理幾個(gè)區(qū)域
12、OC的基礎(chǔ)數(shù)據(jù)類型
13、說一說多線程、在項(xiàng)目中怎么用的
14、單例模式怎樣設(shè)計(jì)的,有什么優(yōu)缺點(diǎn)
15、觀察者模式、KVO的原理
16、地圖開發(fā)經(jīng)驗(yàn)
17、寫uni-app的架構(gòu)、serveice層、小程序上線流程
19、為什么要寫博客
20、 以后的發(fā)展方向
滴滴
1、 二叉樹搜索的思路
2、 反轉(zhuǎn)鏈表
3、 項(xiàng)目中遇到的重大問題、如何解決的、解決后心態(tài)的變化
4、組件化有用到哪些?說說你們后臺(tái)分發(fā)的流程
5、 block的循環(huán)引用是怎么產(chǎn)生的?在內(nèi)部會(huì)不會(huì)加上__strong?為什么
6、block如何修改外部變量
7、 runtime消息轉(zhuǎn)發(fā)流程和結(jié)構(gòu)體
8、 GCD和NSOperation的利弊
9、 說一下runloop
10、 圖片緩存的原理和圖片移除的原理(主要考察最長(zhǎng)時(shí)間算法)
11、 你知道的數(shù)據(jù)持久化的方式
12、 數(shù)據(jù)庫用的哪些?FMDB、SQLite
13、在讀寫數(shù)據(jù)庫的時(shí)候使用的是幾個(gè)線程
14、 說一下uni-app、這樣設(shè)計(jì)架構(gòu)的目的是什么
15、單例、代理、觀察者你喜歡用哪個(gè)
16、swift的struct和class的區(qū)別
17、swift的option是怎么實(shí)現(xiàn)的
18、做了哪些性能優(yōu)化和啟動(dòng)改造
19、 怎么與前端進(jìn)行通信的
快手用戶增長(zhǎng)
1、 weak的用途和原理。追問:key和value是怎樣對(duì)應(yīng)的?查找時(shí)怎樣找到它清理的對(duì)象。
2、 uitableview是什么模式實(shí)現(xiàn)的?
3、 frame和bounds的區(qū)別
4、 kvo的使用和原理
5、isa指針的說明6、 base64/md5加密/aes/rsa+des加密,在什么情況下用到了md5加密
6、block的結(jié)構(gòu)和它造成的循環(huán)引用
7、自動(dòng)化打包
平臺(tái)通過腳本控制 遠(yuǎn)程打包 節(jié)省人力物力,解決沖突,走測(cè)試
8、打包時(shí)間長(zhǎng)怎么優(yōu)化
9、編譯過程縮短
10、 Autolayout,舉了個(gè)栗子排布。uibutton寬度固定,uilabel怎么排
11、離屏渲染的原理和例子
12、http傳輸?shù)奈鍖樱粋€(gè)瀏覽器向服務(wù)端發(fā)送url的過程。追問:解析ip地址的時(shí)候發(fā)生在哪一層。
13、 三次握手的原理,tcp在哪一層?ip在哪一層
14、 快速排序的復(fù)雜度、冒泡排序的復(fù)雜度
15、手寫兩個(gè)鏈表合并
16手寫字符串反轉(zhuǎn)
趣拿
1、HTTPS和HTTP的區(qū)別
2、 HTTPS傳值過程
3、 runtime發(fā)送消息的流程。給nil對(duì)象發(fā)送消息會(huì)怎樣?
4、 根元類的isa指向,根元類的父類指向
5、 用runtime做過什么事情
6、 Hook和aop
7、 load和initail的調(diào)用時(shí)機(jī)
8、rn模塊開發(fā),反向傳值是怎么傳的
9、 同時(shí)重寫getter和setter方法會(huì)怎樣?
10、 KVO的原理。追問:如果對(duì)這個(gè)類使用了KVC,再用反射方法去訪問這個(gè)類,它返回的結(jié)果是什么?
11、靜態(tài)庫動(dòng)態(tài)庫
12、手寫鏈表反轉(zhuǎn)
13、 怎么判斷有環(huán)
14、二分查找
15、斐波拉契
16、快排
猿題庫
1、oc的動(dòng)態(tài)運(yùn)行時(shí)體現(xiàn)在什么方面
2、runtime發(fā)送消息的流程,forwardTarget方法是做什么的?
3、kvo的實(shí)現(xiàn)過程
4、要是讓你設(shè)計(jì)一個(gè)通知模式,你會(huì)怎么做?怎么把方法傳給外面要調(diào)用它的類?
4、crash的捕獲原理
5、兩個(gè)透明的view都有button,view1放在view2上面,但是從界面看上去button像是放在一個(gè)view中。問此時(shí)點(diǎn)擊兩個(gè)button會(huì)發(fā)生什么事。
6、NSTimer什么時(shí)候會(huì)出現(xiàn)循環(huán)引用?怎么解決
7、RN的原理
8、HTTPS和HTTP的區(qū)別、五層模型
9、fps的檢測(cè)
10、cs的基礎(chǔ)
11、shell和ruby有寫過腳本么
12、找出數(shù)組中比它左邊都要大比它右邊要小的數(shù)放入到新的數(shù)組
13、wkwebview與uiwebview的區(qū)別
智慧丘比特
1、 categroy的工作原理和需要注意的事項(xiàng)?
2、只能添加方法不能添加成員變量
3、分類中的@property, 只會(huì)生成setter/getter方法的聲明, 不會(huì)生成實(shí)現(xiàn)以及私有的成員變量
4、添加的方法是如何存放的?
5、KVO的實(shí)現(xiàn)原理?
6、kVO在內(nèi)存中是如何管理的?
7、內(nèi)存管理方面的理解? arc是如何實(shí)現(xiàn)的
8、自動(dòng)釋放池是如何管理內(nèi)存的? 你現(xiàn)在的代碼還能看到autoreleasepool么
9、sdwebimage 給一個(gè)圖片到屏幕展示,是如何工作的
10、為什么使用sdweimage的過程中,不卡
11、給你一個(gè)url,到服務(wù)器返回一個(gè)json數(shù)據(jù)的過程
12、并發(fā)返回了多個(gè)數(shù)據(jù),如何拿到的數(shù)據(jù)是按順序的?
13、合并兩個(gè)有序數(shù)組
14、買賣股票的最佳時(shí)機(jī)
15、app的啟動(dòng)流程
新勢(shì)力
1、 項(xiàng)目中印象深刻比較難的?
2、 swift和OC有什么區(qū)別
3、 多線程的應(yīng)用場(chǎng)景
4、兩個(gè)異步任務(wù)如何去做同步? gcd和nsoperation如何實(shí)現(xiàn)
5、 做過什么性能優(yōu)化的東西
美團(tuán)
1、特別想介紹的項(xiàng)目
2、 熱修復(fù)的原理?
3、運(yùn)行時(shí)的介紹? 消息轉(zhuǎn)發(fā)的流程
4、 OC中相關(guān)動(dòng)態(tài)的方法?
5、運(yùn)行時(shí)解決過什么問題
6、 kvo的實(shí)現(xiàn)過程? 主要解決什么問題呢?
7、 self和super的區(qū)別
8、組件化如何通訊
9、tcp udp http
10、做過什么網(wǎng)絡(luò)優(yōu)化的操作么?
11、你的日志是如何設(shè)計(jì)的
12、有什么指標(biāo)相關(guān)的么
13、環(huán)形鏈表