頭條的一面 很重視整個(gè)計(jì)算機(jī)體系的基礎(chǔ)
算法惜论、網(wǎng)絡(luò)馆类、操作系統(tǒng)需要重點(diǎn)準(zhǔn)備句喜,
iOS知識(shí)涉及到比較少咳胃,估計(jì)會(huì)在二面重點(diǎn)考察 職位方向的具體知識(shí)
1.上來自我介紹展懈,(盡量說一些簡(jiǎn)歷上沒有的
2.為什么學(xué)習(xí)iOS存崖?平時(shí)是通過什么渠道學(xué)習(xí)iOS的(看博客来惧,寫總結(jié)违寞,寫博客..
3.提到了網(wǎng)絡(luò)部分:少不了HTTP協(xié)議趁曼,TCP/IP協(xié)議(幾乎面試都會(huì)問到挡闰,這里需要重點(diǎn)準(zhǔn)備)
4.三次握手摄悯,最后一次客戶端對(duì)服務(wù)器的響應(yīng)奢驯,如果失敗了瘪阁,服務(wù)器沒有收到管跺,會(huì)產(chǎn)生什么后果豁跑?(答案:被黑客利用狐蜕,對(duì)服務(wù)器DDos攻擊:http://www.reibang.com/p/1c65840fc02d)
5.四次揮手馏鹤,為什么斷開連接是四次湃累?而建立連接是三次治力?(斷開是雙向的宵统,應(yīng)該可以理解成 客戶端到服務(wù)器是一個(gè)通道马澈,服務(wù)器到客戶端是另一個(gè)通道)
6.HTTP的緩存策略(*這個(gè)好像騰訊電話面問到了)
7.關(guān)于網(wǎng)絡(luò)痊班,自己扯到了NSURLCollection涤伐、NSURLSession凝果、AFN型雳,簡(jiǎn)述了三個(gè)API后四啰,面試官問:NSURLCollection和NSURLSession區(qū)別是什么?蘋果為什么要推出NSURLSession眷射,放棄NSURLCollection妖碉?NSURLSession是對(duì)NSURLCollection的重構(gòu)欧宜,為什么重構(gòu)冗茸,NSURLSession優(yōu)點(diǎn)在哪里夏漱?挂绰?提到了AFN葵蒂,AFN2.0和3.0版本差別在哪里秦士?進(jìn)行了那些優(yōu)化和變動(dòng)伍宦?次洼?AFN的優(yōu)點(diǎn)體現(xiàn)在哪里卖毁?亥啦??(這些都需要思考的届吁,面試官本意考察基礎(chǔ)疚沐,后續(xù)問到了iOS網(wǎng)絡(luò)部分..可能是我硬拉到iOS上)
8.可能網(wǎng)絡(luò)問到深的地方亮蛔,有點(diǎn)不太懂了...和面試官打了個(gè)招呼(啊啊啊求放過 hhh)面試官人很好,沒有太為難我梯嗽,給我臺(tái)階下灯节,希望下次網(wǎng)絡(luò)部分炎疆,我能答得更好形入,準(zhǔn)備更充分
9.開始問操作系統(tǒng)全跨,線程和進(jìn)程的區(qū)別是什么?多線程亿遂,多進(jìn)程的好處浓若,優(yōu)點(diǎn)是什么?為什么要用到多線程蛇数?挪钓?線程安全是什么耳舅?碌上?給線程加鎖有哪幾種方法?浦徊?(這個(gè)我沒答上來馏予,簡(jiǎn)單說了下用同步鎖)兩個(gè)進(jìn)程如何實(shí)現(xiàn)通信?
https://blog.csdn.net/qq_35247219/article/details/51930849
10.解釋完線程盔性,進(jìn)程等概念后霞丧,我轉(zhuǎn)向了iOS線程的三種形式:
NSThread、GCD冕香、NSOperation蛹尝。簡(jiǎn)單介紹了下三種的區(qū)別和使用后,面試官問:GCD和NSOpreation不同在哪暂筝?各自有什么優(yōu)點(diǎn),各自使用中又有什么需要注意的地方硬贯?GCD是基于C語言的API 偏底層焕襟,速度快,但線程各自的執(zhí)行隊(duì)列不方便(前置約束...)饭豹,NSOperation是對(duì)GCD的封裝鸵赖,性能上不如GCD但,但能非常完整的規(guī)劃整個(gè)線程直接的先后關(guān)系拄衰,前置約束等它褪。
http://lastdays.cn/2016/10/21/NSOperation%E5%8E%9F%E7%90%86%E6%8E%A2%E6%9E%90/
11.GCD能不能也對(duì)線程執(zhí)行隊(duì)列排序?如果能翘悉?怎么做茫打?(GCD和NSOperation還是得多下功夫啊)
12.之后,面試官又轉(zhuǎn)回基礎(chǔ)老赤,問:fork創(chuàng)建線程轮洋,和直接創(chuàng)建線程,有什么區(qū)別抬旺?弊予?(我各種撓頭。开财。不知道啊汉柒。。求面試官放過...hhh...知識(shí)點(diǎn)后補(bǔ))
13.iOS 數(shù)據(jù)持久化有哪些责鳍?(所謂持久化碾褂,就是將數(shù)據(jù)保存到硬盤中,是的在應(yīng)用程序或機(jī)器重啟后可以繼續(xù)訪問之前保存的數(shù)據(jù)薇搁。面試官很有耐心和我解釋一些概念斋扰,這里最好能詳細(xì)解釋一下這5種常見方法..)
- plist文件:屬性列表
- preference:偏好設(shè)置
- NSKeyedArchiver:歸檔
- SQLite3
- CoreData
14.補(bǔ)充:之前騰訊電話面還問到:分段與分頁的區(qū)別?虛擬內(nèi)存啃洋?Xcode編譯原理传货?LLVM(low level virtual machine)底層編譯器?MMU內(nèi)存管理單元
15.之后除了一道算法題宏娄,還行不難问裕,輸入一串?dāng)?shù)字,不能重復(fù)孵坚,需要寫一種算法粮宛,重新組合數(shù)字,輸出比原來的數(shù)大的最小的數(shù)字組合卖宠。
例:1 2 3 4 => 1 2 4 3
看似簡(jiǎn)單的一道題目巍杈,其實(shí)里面藏了很多可能忽略的點(diǎn):
- 1 >當(dāng)數(shù)字是組合中最大的 如 4 3 2 1,該題無解 答案溢出扛伍,應(yīng)該輸出-1(邊界值考慮)
- 2 >輸入的時(shí)候需要判斷有幾個(gè)數(shù)字筷畦,方法應(yīng)該是字符串接收,再根據(jù)空格把數(shù)字提取出來刺洒,得到總數(shù)n(這里我輸入了個(gè)數(shù)字n鳖宾,方便一點(diǎn),實(shí)際上不允許的逆航,面試官還是讓我這么做了鼎文,很好的面試官)
- 3 >不能只看后面三位,得好好思考這個(gè)算法
答案是因俐,從右往左 找到第一個(gè)不是逆序排序的數(shù)字拇惋,替換一個(gè)大一點(diǎn)的數(shù)字給該位置周偎,然后剩下的數(shù)字順序排序。
我自己還總結(jié)了一些iOS 知識(shí)點(diǎn):
1.iOS 事件傳遞及響應(yīng)鏈
2.多線程
3.iOS 內(nèi)存管理機(jī)制是什么蚤假?為什么會(huì)出現(xiàn)內(nèi)存泄漏栏饮?有哪些常見內(nèi)存泄漏的情況。
4.runtime原理(消息發(fā)送磷仰,NSHipster對(duì)象關(guān)聯(lián)袍嬉,NSHipster方法交換等等)
5.KVO原理 -> KVC -> runtime
6.UITableView優(yōu)化方案(不僅cell重用,tableView也能重用:配合UICollectionView)
7.AFN源碼解析
8.SDWebImageView源碼解析
9.UIViewController生命周期
10.App生命周期
每天都要進(jìn)步一點(diǎn)灶平,讓我們?cè)缛漳玫阶约簼M意的offer伺通,加油加油加油!
感謝頭條小哥哥對(duì)我的指點(diǎn)和幫助逢享,教會(huì)了我很多知識(shí)罐监,給頭條小哥哥點(diǎn)贊,感恩瞒爬!