ps:後面按照本身面試的時間順序來寫,記錄的面試題是我印象比較深入的,並不必定很全,暫時先提供面試題,後面考慮給出相應的題解。
我面試了大大小小的各類公司,BAT、bigo、字節、快手、伴魚等,由於一些緣由,也拒面了一些公司,拿了幾家的offer。前端
伴魚是我準備後參加的第一輪面試,有不少本身準備得不是很全,也沒有徹底進入面試狀態,面試結果不是很好,一面就掛了。web
TestObject *object1 = [[TestObject alloc] init]; __block TestObject *object2 = [[TestObject alloc] init]; object1.name = @"Mike"; object2.name = @"Sean"; __block int vi = 1; void (^handler)(NSString *) = ^(NSString *name) { object1.name = name; object2.name = name; vi = 2; } handler(@"Lucy"); NSLog(object1.name); NSLog(object2.name); NSLog(@"%i", vi);
引伸:面試
代碼中的block是什麼block,爲何算法
58我面了不少次,一開始面的基礎研發部門,後來給我轉到了企業工具研發,中間時間拖得有點長,直接拒面了。swift
多線程相關後端
JavaScriptCore相關數組
58這個部門的面試就兩輪,二面是羣面(幾我的輪流面你),第一次接觸這種面試形式,壓力仍是有點的。緩存
ReactNative相關安全
這個創業公司全程都是在聊天,後面問了些和iOS沒多大關係的問題,而後就發了口頭offer。性能優化
拼多多應該是本身面的一個相對較大的公司,面試過程當中和麪試官有了點小分歧,後面問我源碼在哪一個文件哪一行,後面問得問題也基本上是我以前沒怎麼接觸過的。
百度問得和iOS相關的較少,CS基礎相對較多。
由於一開始是在音樂的流程裏,約面時間相對較晚,pcg那邊想和我先聊下,而後再作選擇,因而騰訊面了騰訊音樂和PCG兩個部門
pcg在音樂以前面,面完一面後說一面過了,可是由於流程在音樂,因此讓我選擇一個流程走,我選了音樂,後來音樂掛了後沒有好意思去舔回來。
騰訊音樂感受業務不是不少口,感受面試官不知道問我什麼好,一面後就沒有後續了。
微博有點迷,感受面試官就是對着題庫問問題,感受本身回答還OK,可是一面後不了了之了。
Bigo整個流程推動很快,一面二面都在當天完成,可是bigo三面後掛了,有點迷,我猜想是由於二面的算法題沒有給出最優解。
算法(三道手寫)
iOS基礎:
RN、flutter、weex:
看完文章若是你正在跳槽或者正準備跳槽不妨動動小手,添加一下我們的交流羣1012951431來獲取一份詳細的大廠面試資料爲你的跳槽多添一份保障。
貝殼找房也感受有點迷,和麪試官感受聊很不錯,問得問題都很開放,很考驗功底,最後還問我你感受你過了麼。可是一面後就沒有而後了。
完美的面試有點匆忙,面試的問題也頗有深度,後續由於必需要去現場面試,出於安全因素考慮,沒有去面下去。
滴滴效率是真的高,面試流程一夜走完,當晚出結果,從面試到發offer僅僅用了4天左右的時間。
ps:面試題以前均有涉及,再也不詳寫
猿輔導面試仍是有點難度的,算法寫完還要跑case,第二道題目跑case不正確,看代碼debug,後面由於時間不夠沒有給出正確結果,後面就沒有後續了。
算法:兩題LC medium(都要求寫完跑case)
這邊有個小插曲,由於以前高強度的面試,後面拿了幾個不錯的offer後就不太想繼續面了,感受面試狀態也是一個正態分佈的曲線,拒了高德面試後hr找我聊了下,而後又答應繼續面試,後面由於本身確實沒有發揮出正常的水平,致使一面掛了,不過hr後來請我喝了杯咖啡仍是蠻開心的。
代碼題:
Person *p = [[Person alloc] init]; p.name = @"zhangsan"; NSArray *a = @[p]; NSArray *b = [a copy]; NSArray *c = [a mutableCopy]; Person *p2 = [c firstObject]; p2.name = @"lisi";
NSNotificationCenter *__weak center = [NSNotificationCenter defaultCenter]; id __block token = [center addObserver:kDdiRegisterNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) { [self getDataWithComplete:completeBlock]; [center removeObserver:token]; }];
字節面了兩個部門,一個是頭條還有一個是抖音,字節是在我回去動了個小手術後面的,面試也不是很在狀態。
NSLog(@"1"); dispatch_sync(^{ NSLog(@"2"); }); NSLog(@"3");
OC 消息發送機制(提到了isa、類對象,引出下面問題)
抖音面試有點迷,感受面試官和我徹底在兩個頻道,面試官問的內容我明明回答了可是他恕我啥都不會,不知道是否是沒有get到他的點。
快手也是在我動完小手術後面的,我感受面試發揮正常,和麪試官聊也不錯,可是玄學的是本身仍是掛了,後面有其餘BG想撈也不想面了。
設計一個下載任務
• 微信底部四個tab 包含首頁讓你實現要多久,爲何(這個真的沒有明白是想問啥)
• 算法:鏈表反轉
一天四輪的面試確實是高強度的,一天下來整我的會很疲憊,致使前面拿到了一些offer後,緊繃的弦立刻就鬆懈下來了,後面幾輪高德、字節以及快手的面試都沒有發揮出本身應有的水平,所幸的是總體結果差強人意。面試須要不斷覆盤總結,不至於此次面試問的問題不懂下次還不懂,還有知識須要不斷積累,不能再臨時抱佛腳了。
簡歷決定着你可否有面試機會,一份好的簡歷可讓你事半功倍。
iOS有不少東西咱們是看不到具體的實現的,畢竟是閉源的,可是咱們能結合咱們的一些經驗去猜想蘋果的一些實現方式。目前iOS面試問的問題愈來愈細,愈來愈底層,因此閱讀一些源碼是及其有必要的,iOS通常常考的點以下(這邊列舉得可能並非很全):
Objective-C語言相關
swift相關:
iOS相關
這部分主要看你基礎是否是紮實了,做爲一名RD,無論作什麼,這些知識都是要掌握的。
算法基本上是工程師面試一定考察的點,如今愈來愈多的公司面試考察算法,做爲iOS開發的同窗,在面試以前至少要刷下《劍指offer》上的全部題目,這本書上的題目都是經典中的經典,面試出現機率極高。有時間的話能夠刷下LeetCode上easy和medium難度的題,iOS面試,不多有考察hard的題目,可是就算是遇到hard的題目也不要過於緊張,仔細審題,尋找突破口。算法是一個積累的過程,如今LeetCode能夠每日打卡,這是一個很好的積累手段。下面羅列下常考的數據結構和算法:
數據結構
算法
看完文章若是你正在跳槽或者正準備跳槽不妨動動小手,添加一下我們的交流羣1012951431來獲取一份詳細的大廠面試資料爲你的跳槽多添一份保障。