您好,登錄后才能下訂單哦!
獻(xiàn)給目前為數(shù)不多的春招路上孤獨(dú)的iOSer:
背景: 雙非渣一本,2017級大三計(jì)算機(jī)科班,算法:劍指offer 68題刷了一遍,leetcode 60題。網(wǎng)絡(luò)、操作系統(tǒng)啥的 跟著書本學(xué)習(xí)然后Google查了些資料,然后大學(xué)期間做過一些有關(guān)iOS開發(fā)的實(shí)踐項(xiàng)目。
前言: 雙非本科菜雞的春招有些坎坷,還記得第一次面試(2019年12月12號),帶有一絲絲緊張的感覺跟字節(jié)跳動(dòng)的一面面試官聊了56分鐘,當(dāng)初沒復(fù)習(xí)啥,某學(xué)長的建議早面早知道問題所在,一路聊下來,還算是基礎(chǔ)問題都答出來了,后面問了一個(gè)LRU設(shè)計(jì),由于沒接觸過LRU緩存算法,要我設(shè)計(jì),就一路思考說了鏈表+map,時(shí)間復(fù)雜度沒達(dá)到要求,那個(gè)時(shí)候也沒想到用雙向鏈表(太菜了QAQ).再給我一道股票算法題,不加思考的說了n方的思路,要我優(yōu)化,想了幾分鐘代碼也寫出來了。沒抱太大希望的給我過了。中間由于手機(jī)停機(jī)了(自己沒發(fā)現(xiàn)),hr還加了我微信約二面(被感動(dòng)!?。?,17號二面全程被虐(聽說面試官是抖音那邊轉(zhuǎn)到這個(gè)部門的)。。幸好最后算法題也寫出來了,也讓過了。最后面hr面都過了。第一次面字節(jié)的體驗(yàn)非常好
。后面過了一個(gè)星期多 offer 審批。 hr告訴我他們2020年計(jì)劃希望招資歷豐富的人。offer審批掛掉了。也算是很心痛啊。然后轉(zhuǎn)到字節(jié)的data部門(聽說是絕對核心部門),一二面3個(gè)小時(shí)下來(有點(diǎn)累),最后二面面試官給我了三個(gè)的算法題。我一個(gè)也沒寫出來(后面搜leetcode 算法題 都是hard難度)....就這樣第二次字節(jié)掛了。。 然后帶著遺憾過年了。。就開始刷算法題。開始準(zhǔn)備春招了。
自我介紹
進(jìn)程和線程區(qū)別,進(jìn)程間的通信、內(nèi)存分區(qū)。
內(nèi)存堆和棧的區(qū)別、為什么堆上面效率高
liunx上有沒有寫過進(jìn)程通信的代碼
www.google.com 之后發(fā)生了什么
Https 加密過程
tcp三次握手
swift struct 和class 區(qū)別
swift static與class關(guān)鍵字的區(qū)別
逃逸閉包與普通閉包區(qū)別
iOS 多線程GCD async與sync的區(qū)別
iOS 3張圖片下載完了之后合并一張圖
設(shè)計(jì)一個(gè)緩存機(jī)制(底層數(shù)據(jù)結(jié)構(gòu)是什么樣子的)LRU
股票算法題(要求0(N)時(shí)間)
提問
多線程代碼之行情況 讀代碼寫結(jié)果
nonatomic 和 atomic 區(qū)別
atamic 線程安全如何實(shí)現(xiàn)的
nonatomic 一定是線程不安全的么
swift 數(shù)組切片是什么
swift extension的理解
翻轉(zhuǎn)鏈表
講講對這個(gè)程序的測試用例
最近公共父節(jié)點(diǎn)
提問
圍繞簡歷上的獲獎(jiǎng) 還有獎(jiǎng)學(xué)金成績方面問了些問題,還要一些實(shí)習(xí)時(shí)間問題。
一面
1 tableview 重用機(jī)制 滑動(dòng)性能調(diào)優(yōu)方法
2圓角效率問題 離屏渲染
3calayer 與uiview 區(qū)別 為什么這么設(shè)計(jì)
4swift 消息機(jī)制
5 多線程如何保證線程安全
6 mvvm與mvc的區(qū)別
7 你認(rèn)為mvvm最大的好處
8 如何比較兩個(gè)浮點(diǎn)類型 為什么要這么做
9 進(jìn)程和線程的區(qū)別 為什么切換線程代價(jià)小
10 如何實(shí)現(xiàn)進(jìn)程間的通信
11 信號量 管道 共享內(nèi)存 效率比較
12 設(shè)計(jì)模式你還了解哪些
13 詳細(xì)講一下觀察者模式、適配器模式、橋接模式
14 hppts加密過程詳細(xì)講一下
15 抓包原理
16 如何驗(yàn)證加密過程的證書
17 同步異步 串行 并發(fā) 區(qū)別
18 最低公共父結(jié)點(diǎn)
二面
自我介紹
swift消息機(jī)制
swift比oc快在哪里
https加密過程
證書驗(yàn)證如何進(jìn)行
tcp如何進(jìn)行擁塞控制 如何進(jìn)行滑動(dòng)窗口的大小變動(dòng)的 根據(jù)什么
三道算法題,不太記得了。。
一面 75分鐘
自我介紹
項(xiàng)目 懟了45分鐘
app啟動(dòng)流程優(yōu)化
app包瘦身
設(shè)計(jì)題:根據(jù)文字長短動(dòng)態(tài)設(shè)置cell
設(shè)計(jì)題:上面題目再加一個(gè)button button 文字內(nèi)容長短不一
https加密過程
客服端是怎么證書驗(yàn)證
http用了哪些協(xié)議
為什么8g大小的程序可以跑在4g內(nèi)存上面
匯編函數(shù)調(diào)用的參數(shù)怎么傳的
如何提高上傳視頻大成功率 設(shè)計(jì)方案
算法題 :定義:給定a 計(jì)算出a各個(gè)位數(shù)之和 相加等于b 。現(xiàn)在給定b 求a
二面 45分鐘
自我介紹
項(xiàng)目 15分鐘
加載圖片卡頓是為什么 有哪些優(yōu)化方案
圖片解碼時(shí)機(jī)
設(shè)計(jì)os的復(fù)制粘貼
假如現(xiàn)在有一個(gè)可以需要在三維中寫字并輸出結(jié)果的課題 怎么做這個(gè)課題 你的思路
算法題 數(shù)字轉(zhuǎn)漢字
自我介紹
棧和堆的區(qū)別
各種排序算法比較(冒泡、快速排序、歸并排序、桶排序、計(jì)數(shù)排序)
數(shù)組、鏈表、哈希表優(yōu)缺點(diǎn)
uiview與calayer的聯(lián)系與區(qū)別 為什么uiview可以響應(yīng)事件
tableview的重用機(jī)制以及與collectionview的區(qū)別
cpu和gpu的區(qū)別 離屏渲染
mvvm與mvc
項(xiàng)目亮點(diǎn) 野指針處理
內(nèi)存管理
深拷貝與淺拷貝 如何進(jìn)行類的深拷貝
一面 70分鐘
1.聊了下目前的情況以及經(jīng)歷
2.事件傳遞與響應(yīng)鏈
3.runtime機(jī)制聊一下
4.runloop的理解
5.mvc與mvvm的理解
6 gcd與NSopraretion的優(yōu)缺點(diǎn)
7.tableview的理解重用以及調(diào)優(yōu)
8.異步加載圖片原理
9.平常調(diào)試怎么做的
10.gpu與cpu 離屏渲染
11.網(wǎng)絡(luò)請求庫的封裝
12.內(nèi)存管理 解決循環(huán)引用又出什么問題
13.循環(huán)引用出現(xiàn)的常見情況
14.autoreleas談?wù)?/p>
15.timer為什么在子線程中不工作
16.為什么學(xué)iOS
2-25 二面
自我介紹
實(shí)習(xí)多久、學(xué)習(xí)過哪些語言
為什么選擇iOS、學(xué)習(xí)iOS最大的困難。
mvc和mvvm理解
了解哪些數(shù)據(jù)結(jié)構(gòu)
散列表實(shí)現(xiàn)原理
iOS內(nèi)存管理方式
了解哪些網(wǎng)絡(luò)協(xié)議
http 傳輸層用的哪個(gè)協(xié)議,版本問題
問了一些比較常規(guī)的問題
自我介紹
算法題: 兩個(gè)隊(duì)列實(shí)現(xiàn)棧
分類extension 在oc與swift區(qū)別
在什么時(shí)機(jī)加載(沒答上來)
oc與swift語言區(qū)別
tableview做了哪些優(yōu)化
如何實(shí)現(xiàn)多個(gè)圖片下載后合成一張圖片
除了gcd group之外 其他方法
信號量與鎖的區(qū)別
mvc和mvvm的區(qū)別
為什么從swift開始學(xué)
如何學(xué)習(xí)iOS的
有什么要問的?(由于感覺不錯(cuò)問了下評價(jià))
1.評價(jià)
2.為什么UI只能在主線程刷新?
算法題:給定排序數(shù)組和一個(gè)值sum,找到兩個(gè)值 等于這個(gè)sum。
自我介紹
項(xiàng)目相關(guān)
tableview優(yōu)化
app啟動(dòng)流程
kvo實(shí)現(xiàn)機(jī)制
第三方庫Alaomofire 的核心
除了學(xué)習(xí)iOS還關(guān)注哪些技術(shù)
提問:
問了很多,都是聊天之類的。
@interface homeViewControler : UIViewController{someManager *_manager;}@property (nonatomic, assign) NSNumber *flag;@property (nonatomic, strong) NSString *name;@property (nonatomic, strong) UIButton *button;@end@implementation homeViewControler- (void)viewDidLoad{self.button.onClick = ^{if (self.flag) {self.name = @"the name";[_manager reloadData:self.name];}else{self.name = nil;[_manager clearData];}};}@end
- (void)someMethod {int i = 10;//__block int i = 10; dispatch_async(dispatch_get_main_queue(), ^{NSLog(@"%d",i);});i = 20;}
代碼輸出多少?如果用__block修飾i又會輸出多少?為什么?
1、使用遞歸,計(jì)算從1加到100的值
2、使用遞歸,計(jì)算從 n 加到 m的值
(n < m)
3、使用遞歸,計(jì)算從 n,n+t, n+2t, .... n+ mt 的值
(m >=1)
實(shí)現(xiàn)一個(gè)簡單的視頻播放App,用戶可以播放、暫停、或者拖動(dòng)進(jìn)度條,也可以在多個(gè)視頻源之間進(jìn)行切換。
有一個(gè)第三方的視頻播放器SDK,提供一些基本的API: 1)prepare:初始化,傳入播放地址 2)play:開始播放 3)pause:暫停播放 4)seek:跳到某一時(shí)刻 5)release:停止播放并釋放資源 這些API都是同步的,可能會有耗時(shí),并且該播放器對于調(diào)用的順序有比較嚴(yán)格的要求,例如連續(xù)調(diào)用兩次play,或者沒有調(diào)用play就調(diào)用pause,都會造成異常。
問題:如何實(shí)現(xiàn)這個(gè)視頻播放功能,使得用戶的操作能夠盡早得到響應(yīng),且不會造成異常。
問了很多問題,大概記得的就是:
手寫LRU、股票算法題
MVVM與MVC的比較
UItableView的性能調(diào)優(yōu)
Auto layout的原理
GCD與NSoperationqueue比較
kingsiher圖像庫的異步加載原理
圖像解碼
事件傳遞與響應(yīng)
閱讀過哪些第三庫源碼分析一下
由于過了四五天了 二面有些忘記了。
hr 一些常規(guī)問題,然后這個(gè)hr小姐姐好像還懂點(diǎn)技術(shù),就追著我的簡歷不放,要我復(fù)盤項(xiàng)目,還要講下技術(shù)方面的點(diǎn)。
三面+hr面 都是電話面試,比較容易然后就忘記寫記錄了。估計(jì)是比較缺人叭,流程很順利
上來三道算法題,然后問了些項(xiàng)目的事情,算法做得還闊以,后面晚上給掛了,也心情復(fù)雜就沒記錄了。
由于拿了快手音視頻的實(shí)習(xí)offer 就無所謂了,順便面了下 聊了80分鐘左右,還共享屏幕看我寫代碼。 后面給過了,,等著復(fù)試,4-17日 騰訊提前批結(jié)束,流程變灰了,就沒參加了
如果你想一起進(jìn)階,不妨添加一下交流群 1012951431
面試題資料或者相關(guān)學(xué)習(xí)資料都在群文件中 進(jìn)群即可下載!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。