什么是面試
有些人可能會把面試看的太重,覺得面試過了就能進(jìn)入大廠舷蟀,技術(shù)和財富兼得……
我倒是覺得跃巡,面試沒有這么夸張(抱歉做了一回標(biāo)題黨),它其實是一次你和面試官互相了解的絕佳機(jī)會洞难,借此機(jī)會你還可以對未來的工作有初步的了解。
面試要準(zhǔn)備什么
有一位小伙伴面試阿里被拒后揭朝,面試官給出了這樣的評價:“……計算機(jī)基礎(chǔ)廊营,以及編程基礎(chǔ)能力上都有所欠缺……”。但這種籠統(tǒng)的回答并非是我們希望的答案萝勤,所謂的基礎(chǔ)到底指的是什么露筒?
不知道有多少讀者和我一樣有過這樣的困擾:“我知道某些東西很重要,所以去百度查了資料敌卓,但是查到的文章質(zhì)量很差慎式,正確率沒有保證”。這其實是正常的趟径,優(yōu)秀的文章一般都放在優(yōu)秀的作者的個人博客上瘪吏,這恰恰是搜索引擎的盲區(qū),所以一般只能搜到 CSDN蜗巧、博客園這種地方的文章掌眠。自然就無法保證文章質(zhì)量。
我的面試經(jīng)歷
扯了這么多幕屹,終于進(jìn)入正題了蓝丙,分享一下我的面試經(jīng)歷。題目如下望拖,破折線后面是簡單的解決思路渺尘。
百度
一面:約 1.5 小時
首先是四個算法題:
不用臨時變量怎么實現(xiàn) swap(a, b)——用加法或者異或都可以
二維有序數(shù)組查找數(shù)字——劍指 offer 第 3題
億級日志中,查找登陸次數(shù)最多的十個用戶——(不確定對不對说敏,我的思路是)先用哈希表保存登陸次數(shù)和ID鸥跟,然后用紅黑樹保存最大的十個數(shù)。劍指 offer 第 30題
簡述排序算法——快排,partion?函數(shù)的原理医咨,堆排(不穩(wěn)定)枫匾,歸并排序,基數(shù)排序拟淮。
然后有一個智力題干茉,沒完整的答出來,好像影響不是很大惩歉。
最后是 iOS 相關(guān),面試官問的很開放俏蛮,都是談?wù)勛约旱睦斫猓?/p>
說說你對 OC 中?load?方法和?initialize?方法的異同撑蚌。——主要說一下執(zhí)行時間搏屑,各自用途争涌,沒實現(xiàn)子類的方法會不會調(diào)用父類的?
說說你對 block 的理解辣恋×恋妫—— 三種 block,棧上的自動復(fù)制到堆上伟骨,block 的屬性修飾符是 copy饮潦,循環(huán)引用的原理和解決方案。
說說你對 runtime 的理解携狭〖汤——主要是方法調(diào)用時如何查找緩存,如何找到方法逛腿,找不到方法時怎么轉(zhuǎn)發(fā)稀并,對象的內(nèi)存布局。
說說你對 MVC 和 MVVM 的理解单默〉饩伲—— MVC 的 C 太臃腫,可以和 V 合并搁廓,變成 MVVM 中的 V引颈,而 VM 用來將 M 轉(zhuǎn)化成 V 能用的數(shù)據(jù)。
說說 UITableView 的調(diào)優(yōu)境蜕∠哂——一方面是通過 instruments 檢查影響性能的地方,另一方面是估算高度并在 runloop 空閑時緩存汽摹。
談?wù)勀銓?ARC 的理解李丰。ARC 是編譯器完成的,依靠引用計數(shù)逼泣,談?wù)剮讉€屬性修飾符的內(nèi)存管理策略趴泌,什么情況下會內(nèi)存泄露舟舒。
一面的問題非常基礎(chǔ)嗜憔,主要是算法和 Objective-C秃励,因為準(zhǔn)備比較充分,基本上答出來 80% 吧吉捶。大約一周后突然二面夺鲜。
二面:約 0.5 小時
二面比較突然,顯示簡單的自我介紹呐舔,然后問了三個問題:
野指針是什么币励,iOS 開發(fā)中什么情況下會有野指針?——野指針是不為 nil珊拼,但是指向已經(jīng)被釋放的內(nèi)存的指針食呻,不知道什么時候會有,如果有知道的讀者還望提醒澎现。
介紹 block仅胞。—— (接第一問) 我讓面試官提示我一下什么時候會有野指針剑辫,他說用 block 時干旧,我表示還是不知道,只知道 block 會有循環(huán)引用妹蔽。于是就扯回了一面的問題莱革。
說說你是怎么優(yōu)化 UITableView 的《锟——還是一面的問題盅视。。旦万。闹击。。成艘。赏半。。淆两。断箫。。
雖然通過了秋冰,但是幾乎又問了一遍一面的問題讓我感覺對方不太認(rèn)真仲义。
三面:北京 onsite,約 2.5 小時
首先是給一個小時,手寫算法兩個算法題埃撵。接下來問了 TCP 握手相關(guān)的赵颅。最后問了 OC 的一些細(xì)節(jié)問題。
小插曲
下面給大家分享一份成為資深架構(gòu)師學(xué)習(xí)路線暂刘,如果想學(xué)習(xí)Java工程化饺谬、高性能及分布式、深入淺出谣拣。性能調(diào)優(yōu)募寨、Spring,MyBatis森缠,Netty源碼分析的朋友可以加我的Java進(jìn)階群:478052716 拔鹰,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費分享給大家辅鲸。