iOS實習面經(位元組美團阿里蘑菇街)

iOS面試簡歷專員發表於2020-05-20

因為時間很久了,記不住太多,只能把記得的寫一寫總的來說,美團的面試體驗最好,位元組的速度最快。
按照時間順序,蘑菇街一面,阿里一面,位元組一面二面,美團一二面,位元組三面。

蘑菇街

一面

是一個小姐姐面的

  1. 學iOS多久了,為什麼學iOS,怎麼學的
  2. 程式和執行緒的區別
  3. weak怎麼用,delegate為什麼用weak
  4. block與weak,__block怎麼用、原理
  5. arc原理,weak的實現原理
  6. 用過category嗎,介紹一下,當時這部分還不太懂,我說不能新增property,她說為什麼不能新增,我強行解釋了一波,她說其實是可以的,但是有些問題,可以回去查一下
  7. 做個題,字串的全排列,結果沒寫完,時間不夠了(我太菜了
  8. 看到我簡歷上提到了網路相關的,問我路由器和交換機的區別,我拿了一堆專業名詞解釋了一波,結果被她打斷,其實她想聽的是家用什麼情況用哪個(我呸!!
  9. 又問,用過抓包工具charles嗎,我說沒,只用過wireshark,她說,wireshark抓到https的包會看不到內容對吧,但是charles可以,為什麼呢,如果要是實在沒用過可以換個問題,我想了一下,確實沒用過,但是之前看過中間人攻擊的原理,就實話實說,猜測應該是XXX原理
    面試完之後看新聞,發現就面試前,github被中間人攻擊了,我才應該是面試官看到這個新聞了然後就問我這個問題了

阿里

二面涼,今天剛發感謝信,阿里的速度出奇的慢,投簡歷之前還以為大公司都會很快,沒想到阿里拖的時間真的非常久,一個半月多(可能因為我菜吧

一面聊的還可以,都比較基礎

  1. 自我介紹
  2. 演算法題,連續子陣列的和,有正有負,典型的dp,但我沒做出來,我傻了,只做了全正的情況
  3. 兩個棧實現佇列,容量大小,複雜度,怎麼最佳化
  4. Block的實現,變數的截獲等等
  5. ARC是什麼,都做了什麼
  6. 一些網路基礎問題,瀏覽器輸入url後回車的流程
  7. 接上一個,MRC有weak嗎,用什麼代替,weak是怎麼實現的
  8. iOS是怎麼學的
  9. Bounds和frame的區別
    大概就記得這些了

二面真的就是虐我

  1. 自我介紹
  2. 問我為什麼筆試的時候用java不用oc,平常都不用oc怎麼能熟練(然後開始批評我
  3. Java和oc的垃圾回收機制
  4. 做個題 leetcode27二叉樹的映象
  5. 紅黑樹的實現(這個是真不會
  6. 職業規劃(我還沒職業呢我怎麼規劃
    然後說沒其他問題了,這時候才二十分鐘多一點,心裡就已經知道要涼了
    然後今天

位元組

找了一個做iOS的學長內推,兩點發過去簡歷,五點半就打電話約面試了,每次面試都是離面試結束應該也就三四個小時就打電話約下一面了

一面

  1. 自我介紹,block的實現、變數截獲,有個forwarding指標是幹什麼的
  2. Category能新增什麼,原理,為什麼能新增property不能新增ivar
  3. 用gcd怎麼實現執行緒安全(barrier)
  4. Oc中的方法呼叫
  5. 一些網路問題,很基礎,tcpudp區別,https原理,http2.0
  6. 記憶體對齊的原因
  7. 演算法題O(1)的複雜度刪除連結串列節點,劍指上有,做過又忘了,以為要遍歷,怎麼想也做不到O(1),結果我理解錯了,會給節點地址
    最後問小哥我是不是涼了,他說我沒涼,入職後還沒跟小哥面基

二面

二面是一個非常嚴肅的老哥,面得我真的是心態爆炸,問啥啥不會,最後竟然還過了,記住的問題不多,可能是不想回憶痛苦

  1. 上來就問我啥語言比較擅長,我說java……老哥愣住了,問我c++呢,我說學過,忘的差不多了,他說,c呢,我說還湊合吧,然後就開始虐我
  2. strlen()和sizeof()作用於一個字串時的區別
  3. 還有一些其他的c的問題,記不住了
  4. 程式執行緒區別
    …………記不住了
    最後又問老哥,我是不是涼了,老哥終於笑了,說 你要對自己有信心。
    面試完在家吃午飯,難受得我都沒吃好,下午面美團的時候hr又打電話約三面

三面

三面就是我現在的leader,人很好,也很年輕,抓問題一針見血
問了不少問題,基本都忘了
java的gc,cookie和session的區別等等
老哥看我看的透透的,不愧是leader,說我都是停留在用的層面上,沒有去究其原理,動手能力應該還可以,但是理論需要加強(作業系統等等),跟我說看面經背答案啥的沒用,還是得去系統的學,去動手

美團

面經是我錄了音然後整理出來的,問題應該都沒有漏掉

一面

  1. property修飾符以及作用
  2. 接1,atomic和nonatomic的鎖原理,目的,舉一個用atomic的例子
  3. 接1,weak的實現原理,weak表的key-value分別是什麼
  4. 接1,copy的使用場景,使用的條件,如果沒有重寫copyWithZone會怎樣
  5. 訊息傳送的機制,方法呼叫的過程
  6. kvc的使用,kvo的使用、原理
  7. Category能不能新增屬性,為什麼。新增屬性和method實現的原理
  8. 接7,ios8編譯的app能在ios10(或其他)上執行,如果NSObject修改了,為什麼還能正常執行。
  9. Xcode中按下執行按鈕到App開啟,整個的過程,編譯過程每一步的產物
  10. 瀏覽器輸入URL按下回車後的整個過程
  11. DNS哪一層的協議,用TCP還是UDP
  12. 接11,TCP和UDP的區別
  13. 三次握手的過程,過程中協商了什麼;四次揮手過程,為什麼握手三次揮手四次
  14. 為什麼要有虛擬記憶體,為什麼分段和分頁
  15. 程式執行緒的區別,程式之間執行緒之間記憶體隔離嗎
  16. 接15,程式間通訊的方式,使用過哪些,socket程式設計用過嗎
  17. 學習iOS過程中的難點,怎麼學的
  18. 點選事件的響應過程瞭解嗎
  19. 寫個題,遍歷子view,奇數偶數層分別染色,分別用遞迴迭代,我遞迴用了一個引數來標識奇數偶數層,問能不能最佳化掉
  20. 思維題,十個物品,九個100g,一個90g,只有一個天平,用最少次數找出這一筐;再加一個條件,如果可以使用任意質量的砝碼,如何最佳化。
  21. 你有什麼問題

十幾分鍾後二面

二面

  1. OC比起C增加了什麼,有哪些東西依賴runtime或者是由runtime實現的
  2. 接1,提醒我還有物件導向的這部分,物件導向的三個特性,那麼是怎麼實現的怎麼構建起來的,我回答了物件類物件metaclass的相對的結構
  3. 接2,物件的ivar的存在哪,是根據什麼生成的,類物件有ivar嗎
  4. 看過哪些OC的原始碼,直接看的原始碼還是對照一些文章,都在哪找這些文章,看過什麼OC的書,語法是怎麼學的,接觸OC的時間
  5. iOS和Android的App不能通用,分析一下為什麼
  6. 瞭解過什麼跨平臺的技術
  7. 做個題,F()有0.3的機率返回0,0.7的機率返回1,設計一個函式G(),只能使用F(),使G()等機率返回0和1
  8. 接7,只能使用F()和G()設計一個函式,等機率返回[0, 1000]的整數
  9. 程式的記憶體空間,分別存什麼
  10. 接9,函式呼叫的時候為什麼要把暫存器的值壓入棧,都有哪些要壓進去
  11. 程式和執行緒,區別,分別有什麼資源,程式切換的過程
  12. 這學期課多嗎,都有啥,實習的話什麼時候可以來,考研嗎,為什麼
  13. 閒聊~~

推薦?:
如果你想一起進階,不妨新增一下交流群 1012951431

面試題資料或者相關學習資料都在群檔案中 進群即可下載!


iOS實習面經(位元組美團阿里蘑菇街)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971523/viewspace-2693189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章