iOS 秋招總結 = 面經 + 閒言碎語

面經包含:攜程、阿里、京東、騰訊c++

十一假期,秋招基本上已經結束了,剩下少許面試和少許流程中。雖然尚未最終決定,不過也仍是決定來開個帖子,寫一些總結。git

樓主是今年春招的時候開始看看面經,真題作的不多,很水=。=,慚愧慚愧。而後秋招的時候因爲實習比較忙,因此基本上就只投了秋招正式批,內推要麼沒投,要麼踩線投,直接沒了音信……github

樓主iOS開發,主要用的Swift語言。下面上一些面經,但願可以對你們有那麼一點點幫助。web


今日頭條

樓主春招的時候採用的是廣撒網的戰術(由於當時完徹底全是個菜雞,iOS大部分都是邊春招邊學的。。)也是僥倖拿到了頭條暑期實習生的offer,而後陰差陽錯的決定到北京來實習,而後暑期結束以後拿到轉正的offer。面試

當初巧合來的頭條,來了以後以爲特別好,哈哈,趁機推薦一波。實習工資(正式還沒談)、福利、部門、地理位置都還不錯,到如今也還在實習。數組


攜程

攜程是一家很使人蛋疼的公司。緩存

內推投了攜程,經過了測評。而後進入了漫長的等待,某周打電話跟我說,問我能不能去上海面試,我說我在北京實習,能不能遠程面試。hr卻是很爽快的答應了,而且約定兩天後面試……安全

然而,就此被鴿,進入了漫長的等待期。後來給攜程校招組發反饋,終於得到了面試機會,兩輪面試感受答得還行,題也不是很難,然而就那麼忽然有一天gg了。服務器

攜程面試題

一面

  1. 請看下面一段代碼static int a = 1; int main(){ int m = 2; char *n = NULL; l = (char *)malloc(100 * sizeof(char)); return 0; }請問訪問m,n,l 3種類型變量的效率從高到低依次是()
    A. lnm
    B. mnl
    C. mln
    D. nlm
  2. 請寫出一個單例
  3. 請寫出程序計算結果
    AB兩地相距1000米,小明從A地點以30米/分鐘的速度向B地點走,小白從B地點以20米/分鐘的速度向A地點走,兩人同時出發,用代碼寫出他們多少分鐘後遇到?
  4. 請寫出程序輸出結果
    對數組 ["12-12","12-11", "12-11", "12-11", "12-13", "12-14"] 去重同時進行排序
  5. 使用遞歸方法計算99到1相加的計算結果。是否瞭解無尾隨遞歸?
  6. 請看下面一段代碼
- (void)viewDidLoad
{
    [super viewDidLoad];
    dispatch_queue_t queue1 = dispatch_get_main_queue();
    dispatch_async(queue1, ^{NSLog(@"222 Hello?");});
    NSLog(@"aaaaaaa");
}複製代碼

程序結果將輸出
A. 死鎖
B. 打印「aaaaaaa
222 Hello?」
C. 打印「222 Hello?
aaaaaaa」
D. 打印「」微信

二面

  1. 請說一說UITableView的重用機制
  2. 請說一說你對Objective-C中property字段的瞭解
  3. 請說一說你對iOS中內存管理的瞭解。ARC底層時如何實現的?
  4. 你是如何進行網絡層的封裝的?
  5. 你是如何學習iOS開發的?

阿里巴巴

我對阿里總體印象仍是不錯的。春招的時候動做特別慢,基本隔兩週面試一次,最後發offer都等了快一個月。不過此次秋招動做很快,兩天就搞完了三面,兩面技術都是很快,並且也都是問問項目,感受加起來還沒hr面時間長。

阿里面試題

一面

  1. 爲何要用Alamofire而不用原生的NSURLSession,Alamofire的優點是什麼?
  2. 若是讓你來封裝一個網絡庫,相似於Alamofire或者SDWebImage,你會如何實現?
  3. 在網絡庫中,如何針對TableView快速滾動過程當中的圖片額外渲染進行優化(網絡庫不能持有TableView)?

二面

  1. iOS的系統架構是怎麼樣的?經常使用SDK有哪些?
  2. 瞭解HTTP協議嗎?GET和POST的區別是什麼?
  3. 對安全方面有何瞭解?如何應對web頁面被劫持?瞭解HTTPS加密解密的過程嗎

京東

京東整體來講仍是體驗不錯的,和前兩面的面試官相談甚歡。總體感受一面面官很注重基礎,二面面官更看重項目一些,基本上都是根據簡歷和項目來問的。然而就在我志得意滿之時忽然接到了三面的電話(說好的只有兩面技術面呢),而後各類懟我……

京東面試題

一面

  1. 講一講你對iOS內存分配的理解?值類型和引用類型?
  2. 假設ViewController中須要用一個Blcok來改變ViewController中的一個屬性,須要怎麼實現?
  3. 這樣實現以後,這個Block在內存中被存在何處?引用關係又是怎麼樣的?
  4. 函數中的閉包,若是要求閉包執行完後馬上改變函數中某個變量的值,應該如何實現?
  5. 如何實現一個相似於微信聊天界面的佈局?
  6. 如何用Auto Layout實現一個以下要求的佈局: %^&@$^@(#!...... (說了一大堆 =。= 反正就是使用優先級就解決了)

二面

  1. 說一說 MVC 和 MVVM 的區別,以及各自的優缺點。
  2. 如何將 MVC 改形成 MVVM ?在MVVM中,網絡請求、緩存處理的部分應該放在哪一個模塊?
  3. 爲何說Swift是面向協議的語言?使用 Protocol 有什麼好處?
  4. 比較一下 Swift 和 Objective-C 在語言層面上的安全性?
  5. 若是ViewController中使用閉包時,用weak避免循環引用,會有什麼問題?
  6. 當點擊一個View時,發生了什麼?如何擴大點擊區域?
  7. 如何對TableView進行優化?
  8. 能講一講你對光柵化的理解嗎?

三面

  1. 對Swift和OC有什麼見解?
  2. 能對Swift中的可選類型談下你的理解嗎?
  3. 說一下快排的僞代碼和時間複雜度?
  4. 怎麼判斷兩個鏈表是否相交?
  5. 怎麼反轉二叉樹?
  6. 瞭解元組嗎?
  7. 瞭解多線程嗎?
  8. 什麼是並行?
  9. 如今有ABC三個任務,如何實現AB完成後再執行C?
  10. 對 Runtime 有什麼瞭解?
  11. HTTP 和 HTTPS 有什麼區別?
  12. 知道 HTTPS 通訊過程嗎?
  13. Struct 和 Class 有什麼區別?

騰訊

騰訊的面試真的很是的注重基礎,兩個面官都對iOS不是很懂,並且對項目也沒有太深刻的探討,只是讓說了一下項目的架構,感受就是想確認一下這個東西是否是你本身作的。第一面面完以後徹底沒涉及到iOS相關的知識,致使我面完以後問面試官是否是我當時投錯了崗=。=!另外,騰訊HR態度是真的很好,贊一個。

一面

  1. 爲何要設計Cache?Cache分級有什麼好處?
  2. 如何保證多核數據的一致性?
  3. c++ new 和 malloc 有什麼區別?
  4. c++ 可不能夠多繼承?
  5. c++ 引用和指針的區別?
  6. 如何判斷兩個鏈表是否有交點?
  7. 堆區和棧區有什麼區別?爲何要這麼設計?
  8. 給棧增長一個Max函數接口,返回當前棧的最大值,應該如何設計?
  9. 給定排好序的整數數組array[]以及整數n,如何找出和爲n的兩個數?
  10. 若是沒排好序呢?
  11. 一個字符串,如何找出只出現一次而且最早出現的字符?

二面

  1. 反轉字符串
  2. 判斷整數是否爲$2^n$
  3. 一個m*n的棋盤,有些格子不能走,如何找到左上角到右下角的最短路徑?
  4. iOS 按下 Home 鍵以後會發生什麼?
  5. c++中內存分配是怎樣的?
  6. c++中經常使用的容器有哪些?
  7. queue和vector有什麼區別?
  8. vector底層是怎麼實現的?
  9. TCP三次握手?爲何兩次不行?
  10. 項目中有沒有服務器push機制?

結語

秋招投的簡歷很少,面試也就這幾家,還有幾家在安排面試,以後有更新再繼續更新。若是有想看答案的,或者以爲在這裏格式不是很清晰的,我本身也總結了大部分題的答案放在Github

相關文章
相關標籤/搜索