跳槽陶舞,這在 IT 互聯(lián)網(wǎng)圈是非常普遍的抹剩,也是讓自己升職加薪撑帖,走上人生巔峰的重要方式。那么作為一個普通的Android程序猿澳眷,我們?nèi)绾尾拍軘孬@大廠offer 呢胡嘿?
疫情向好、面試在即钳踊,還在迷茫躊躇中的后浪們衷敌,如何才能在面試中讓自己脫穎而出勿侯,讓面試官眼前一亮?
下面缴罗,我將結(jié)合我過往的面試經(jīng)歷來幫大家分析助琐,在Android大廠面試過程中,我們需要注意的關(guān)鍵點(diǎn)以及我們需要做怎樣的準(zhǔn)備面氓。
本文適合人群: 剛畢業(yè)的大學(xué)生兵钮、缺乏面試經(jīng)驗(yàn)的求職者、致力于在大廠社招中尋找Android相關(guān)機(jī)會的開發(fā)者等舌界。
文章末尾我將分享幾篇干貨滿滿的面試文章以及資料給大家掘譬,記得一定要好好收藏哦!呻拌!
面試前的準(zhǔn)備
在這部分葱轩,我將詳細(xì)講解面試前我們需要做哪些方面的工作,以保證我們在面試過程中更加順利柏锄。
準(zhǔn)備一份漂亮的簡歷
一份漂亮的簡歷就是你進(jìn)入大廠的敲門磚酿箭。
網(wǎng)上有很多教程教大家如何寫出一份漂亮的簡歷,這里我就不做重復(fù)勞動了趾娃,直接分享給大家一個簡歷模板:https://github.com/geekcompany/ResumeSample
今天我就要逆向思維講解一下什么樣的簡歷是糟糕的缭嫡,這里大家一定要檢查一下自己的簡歷有沒有如下的毛病:
薪資期望定得過高或者過低
抬闷。我們在簡歷上填寫的期望薪資妇蛀,建議和投遞的崗位薪資范圍較為接近,懶人可以直接填面議笤成。因?yàn)槎ǖ眠^高评架,面試官看到之后可能會加大面試過程中提問問題的難度宝与。(你想啊夭坪,你定的薪資都比面試官高那么多,人家心里什么滋味器予?還不把你往死里問培遵,看看你到底值不值這個價浙芙?)但是如果你定得過低,面試官可能直接就選擇忽視你的簡歷了籽腕,畢竟工資又不是面試官發(fā)的嗡呼,人家只是想招進(jìn)來一個有能力可以背鍋的,你定得那么低皇耗,明顯是對自己水平?jīng)]信心南窗,也就不會考慮你了。對自己盲目自信,自己搞不明白的也往簡歷里寫万伤,什么都寫精通
窒悔。這也是非常常見的問題。簡歷最講究的是真誠壕翩,會什么就寫什么蛉迹,不要為了凸顯自己多厲害而胡亂往上寫,否則害的還是你自己放妈。你要知道的是北救,一般好一點(diǎn)的面試官都會簡單結(jié)合你簡歷上填寫的內(nèi)容進(jìn)行針對性的提問。因?yàn)榧夹g(shù)可提問的點(diǎn)非常多芜抒,但是面試的時間是有限的珍策,那么如何才能快速地考察一個人的技術(shù)水平呢?最簡單的方式就是結(jié)合這個人的工作經(jīng)歷進(jìn)行針對性的提問宅倒。其實(shí)面試最基本的一項(xiàng)任務(wù)就是驗(yàn)證你簡歷內(nèi)容的真實(shí)性攘宙。簡歷內(nèi)容過于豐富,技能內(nèi)容與崗位描述匹配度不高
拐迁。我就經(jīng)常在Android招聘崗位上收到很多奇葩的簡歷蹭劈。這些人的技能樹通常是:C,Android线召,后臺铺韧,js等,也就是俗稱的全干工程師缓淹。說真的哈打,即使你真的全會,你寫的這個簡歷也只是適合小廠的面試讯壶,因?yàn)榇髲S是不會去招一個什么都會料仗,什么都不精的人的。你需要在簡歷中著重突出你區(qū)別于其他人的優(yōu)勢伏蚊,最好的做法就是什么樣的崗位投遞什么樣的簡歷立轧,多做幾套簡歷作為備選。工作經(jīng)歷過于豐富
躏吊。例如3年待過3家及以上數(shù)量的公司肺孵。工作經(jīng)歷豐富固然是好事,但你也不能全都寫到簡歷里去颜阐,選擇2~3家較為有名的公司介紹一下即可,否則別人會對你的團(tuán)隊(duì)協(xié)作能力以及忠誠度提出質(zhì)疑吓肋。項(xiàng)目經(jīng)驗(yàn)過于簡單或者論文化
凳怨。無論你的項(xiàng)目經(jīng)驗(yàn)是多還是少,列舉3~4個即可。除此之外肤舞,項(xiàng)目經(jīng)驗(yàn)切忌不要論文化紫新,我經(jīng)常看到很多人的簡歷上項(xiàng)目經(jīng)驗(yàn)是大段大段的描述李剖,加起來可能有2~3頁紙...說真的芒率,你寫這么多,面試官反而不會看篙顺,因?yàn)橄肴靠赐陮?shí)在是太累了偶芍。這里你只需要簡單介紹一下項(xiàng)目的內(nèi)容、你負(fù)責(zé)的模塊和擔(dān)任的角色德玫、涉及到的技術(shù)以及最后項(xiàng)目的成果等即可匪蟀。技術(shù)博客或者github主頁沒有什么內(nèi)容也寫到簡歷里
。記住技術(shù)博客或者github主頁這一類的宰僧,本來都屬于加分項(xiàng)材彪,可有可無的,但是如果你寫了琴儿,面試官誓必會滿懷期待地點(diǎn)進(jìn)去看段化,如果這個時候呈現(xiàn)給他的卻是空白頁或者寥寥幾行內(nèi)容的話,這種一落千丈的感受會給面試官留下非常不好的印象造成。簡歷中填寫很多對求職無關(guān)的內(nèi)容
显熏。與職位要求無關(guān)的內(nèi)容就不需要寫到簡歷里去了。因?yàn)槟愕暮啔v是拿去找工作用的谜疤,任何一個與找工作無關(guān)的內(nèi)容寫到簡歷里只會浪費(fèi)你簡歷的空間佃延。例如你的一些興趣愛好或者無關(guān)證件。
自我介紹要背得滾瓜爛熟
自我介紹可以說是面試的必要環(huán)節(jié)夷磕,無論你參加什么形式的面試履肃,面試官一定會首先讓你做一個簡單的自我介紹,所以自我介紹這一關(guān)一定要準(zhǔn)備充分坐桩,最好做到爛熟于心尺棋。
自我介紹不是簡歷的重復(fù)背誦。我們在做自我介紹的時候绵跷,一定要把握好重點(diǎn)膘螟,切忌過長或者過短。
自我介紹的過程碾局,也是一個自我推銷的過程荆残。你可以把面試官當(dāng)作你的顧客,而把你自己當(dāng)作推銷的產(chǎn)品净当。你要做的就是使用最真誠的方式内斯,把你個人的工作經(jīng)驗(yàn)蕴潦、優(yōu)點(diǎn)、能力與面試公司的崗位需求緊密結(jié)合起來俘闯,讓面試官相信招這個人進(jìn)來確實(shí)可以分擔(dān)工作的壓力潭苞。
那么我們在做自我介紹的時候,需要介紹哪些內(nèi)容呢真朗?下面我簡單列舉一些內(nèi)容供大家參考:
-
個人基本信息
此疹。個人信息的介紹要突出重點(diǎn)。我們需要把重點(diǎn)放在與「公司需求」匹配的信息上遮婶,如果該信息匹配或有關(guān)聯(lián)蝗碎,那么我們就說,如果完全沒關(guān)聯(lián)蹭睡,那就一句話帶過或者不說衍菱。 -
工作經(jīng)歷
。如果你的工作經(jīng)歷非常豐富肩豁,那么簡單挑1~2家和目前應(yīng)聘公司類似的簡單介紹一下即可脊串,其實(shí)底層的邏輯就是過去經(jīng)歷是否與目前應(yīng)聘崗位相匹配或有關(guān)聯(lián)。 -
項(xiàng)目經(jīng)歷
清钥。項(xiàng)目經(jīng)歷不要講太多琼锋,挑一個匹配的或者印象最深刻的重點(diǎn)講一下即可,其他的可以一筆帶過祟昭。項(xiàng)目經(jīng)歷可以簡單從四個維度展開:項(xiàng)目的背景缕坎、項(xiàng)目的內(nèi)容、你在項(xiàng)目中承擔(dān)的角色和工作篡悟、項(xiàng)目的成果或者業(yè)績谜叹。 -
未來愿景
。說一些積極向上的內(nèi)容搬葬,進(jìn)一步說明自身與崗位相匹配荷腊,描繪未來愿景,從而更好地打動面試官急凰。(要讓面試官覺得招你進(jìn)來是非常有價值的女仰,小伙子不僅是沖著錢來的,還是有追求講情懷的)
自我介紹不易過長抡锈,準(zhǔn)備2~3分鐘即可疾忍。與此同時,你平時還需要多加練習(xí)床三,根據(jù)不同的公司一罩、不同的場合以及面試的不同崗位,進(jìn)行不同內(nèi)容的自我介紹撇簿。
面試前多刷刷面試題
面試前多刷面試題擒抛,是對面試最起碼的尊重推汽。
雖然我在這里不提倡大家臨時抱佛腳,但是適當(dāng)?shù)乇б槐Х鹉_也比那些什么都不準(zhǔn)備歧沪,就直接裸面的人要好很多,至少你的態(tài)度是端正的莲组。
臨近年終诊胞,很多人開始蠢蠢欲動了,這段時間面試的時候锹杈,我就經(jīng)常能夠面到幾個啥都不準(zhǔn)備撵孤,直接甩兩膀子就過來面試的。面試基本上是一問三不知竭望,要么就是說之前看過忘了...更有甚者直接就說邪码,我就是出來面?zhèn)€試感受一下面試氣氛以及最新行情的...
拜托,能不能給予面試最起碼的尊重咬清?你來面試也是需要花費(fèi)面試官時間的闭专,簡單準(zhǔn)備一下不香嘛?萬一你運(yùn)氣好旧烧,恰好這家公司職位擴(kuò)充影钉,降低面試要求了呢?你這么隨便掘剪,豈不是把白花花的機(jī)會全都給浪費(fèi)掉了嘛平委!
面試前先了解一下應(yīng)聘的公司及職位
提前了解一下應(yīng)聘的公司及職位內(nèi)容,可以避免一些不必要的尷尬:
“你知道我們公司是做什么的嗎夺谁?”
“emm...”
“你知道我們這個崗位的工作內(nèi)容嗎廉赔?”
“emm...”
(老哥!你真的是來面試的嗎匾鸥?@)
如果你是面試官,你會用一個都不知道公司和崗位職責(zé)是什么的人嗎扫腺?這至少說明了2個問題:
- 1.他對這次面試是不重視的8谡铡(那他怎么會對他的工作重視呢?)
- 2.錄用他的風(fēng)險很高0驶贰(他要是工作一段時間發(fā)現(xiàn)不適合怎么辦攒至?)
所以我們在面試前,一定要先在網(wǎng)上搜索一下應(yīng)聘公司的詳細(xì)資料以及職位信息:百度躁劣、脈脈迫吐、企查查、看準(zhǔn)網(wǎng)账忘,企業(yè)官網(wǎng)等都可以獲取到志膀。
那么提前了解這些信息對我們面試會有哪些方面的幫助呢熙宇?
- 1.方便我們準(zhǔn)備與之匹配的簡歷。如果你應(yīng)聘的是一家做手機(jī)Rom定制開發(fā)的公司溉浙,那么你的簡歷就需要圍繞著手機(jī)Rom定制以及Android Framework開發(fā)展開烫止。
- 2.方便我們準(zhǔn)備自我介紹的重點(diǎn)。如果你應(yīng)聘的是一個手機(jī)藍(lán)牙開發(fā)的職位戳稽,那么你在自我介紹的時候就需要突出你在設(shè)備通訊以及bluetooth馆蠕、ble方面的經(jīng)驗(yàn)和能力。
- 3.方便我們準(zhǔn)備與面試相關(guān)的面試題惊奇。如果你應(yīng)聘的部門是做技術(shù)中臺的互躬,那么你可能就需要多準(zhǔn)備一些技術(shù)中臺、設(shè)計(jì)模式颂郎、框架設(shè)計(jì)吼渡、算法方面的知識。
- 4.方便我們準(zhǔn)備面試時提問的問題乓序。如果你對應(yīng)聘企業(yè)的一些規(guī)章寺酪、福利或者工作內(nèi)容有疑問的可以提前準(zhǔn)備一些相關(guān)問題。
面試過程中需要注意的點(diǎn)
保持良好的心態(tài)
只要我們在面試之前做好充足的準(zhǔn)備竭缝,那么我們就應(yīng)該有足夠的信心去面對接下來的各種提問房维,我們唯一需要做的就是保持良好的心態(tài),下面我簡單歸納幾點(diǎn):
淡化成敗意識
抬纸。我們要以一個正常的心態(tài)去面對面試咙俩,畢竟這不同于研究生面試或者公務(wù)員面試那種考試性質(zhì)的面試,即使沒面上你也不會損失什么湿故,何況還能積累面試的經(jīng)驗(yàn)阿趁,所以我們有什么可以擔(dān)心的呢,就權(quán)當(dāng)是和面試官聊聊天坛猪,討論討論技術(shù)罷了脖阵。保持自信
。很多面試官在面試的時候墅茉,喜歡采用"你確定嗎命黔?"這一類的反問句去反問應(yīng)聘者的回答,以核實(shí)應(yīng)聘者對知識的掌握是否牢靠就斤。如果這個時候你就開始懷疑自己悍募,出現(xiàn)舉棋不定的情況的話,那么面試官可能就會認(rèn)為你之前的回答只是道聽途說洋机,或者就是瞎猜的坠宴,根本就沒有掌握這個知識點(diǎn)。不要緊張
绷旗。緊張的表現(xiàn)主要包括:說話結(jié)巴喜鼓,語無倫次副砍,邏輯混亂,神情慌張庄岖,下意識做很多小動作豁翎,目光斜視等。這些在面試官看來都是緊張的表現(xiàn)顿锰,如果遇到好的面試官可能還會提醒你一下谨垃,否則面試基本是涼涼了。冷靜思考
硼控。在考官提問問題之后一定要先冷靜思考,理清思路胳赌,不要急于回答牢撼。當(dāng)遇到問題不清楚或者疑惑的時候,可以主動詢問面試官疑苫,表達(dá)自己的疑惑熏版。這樣一方面顯得比較沉著冷靜,穩(wěn)重得體捍掺。另一方面也可以給自己留出時間理清思路清晰回答撼短。
注意基本禮儀
無論任何時候,我們在與別人交談的過程中都應(yīng)當(dāng)遵守最基本的禮儀挺勿。
- 面試一定要準(zhǔn)時曲横,遇事提前溝通,不可隨意放別人鴿子不瓶。
- 說話一定要注意語速禾嫉,不可過快或過慢,口齒要清晰蚊丐。
- 面試過程保持一定的嚴(yán)肅性熙参,不可過于散漫甚至笑場。
- 不要隨意打斷面試官的話麦备,這是非常不禮貌的行為孽椰,
- 回答面試官提出的問題時一定要有條理,逐句回答凛篙。
- 視頻或者電話面試的時候黍匾,一定要選擇在一個相對安靜的環(huán)境下進(jìn)行。
合理運(yùn)用表達(dá)技巧
一個人的語言表達(dá)藝術(shù)標(biāo)志著你的成熟和素養(yǎng)鞋诗。尤其是在大廠中膀捷,很多問題其實(shí)是可以通過溝通來解決的,所以一個人的語言表達(dá)能力往往也是面試官需要考核的內(nèi)容削彬。
我們應(yīng)該學(xué)會在面試過程中合理運(yùn)用表達(dá)技巧全庸,去凸顯自己的語言表達(dá)能力秀仲。
那么我們應(yīng)該怎么做呢,這里我僅僅是簡單列舉一些供大家參考:
- 吐字清晰壶笼、大方得體神僵、語速適中。
- 說話的語氣要平和覆劈,不可忽高忽低保礼,也不能過于情緒化。
- 認(rèn)真聆聽面試官的發(fā)言责语,注意面試官一些細(xì)微的表情變化以及手勢動作炮障。
- 必要時可以使用一些機(jī)智、幽默的話術(shù)坤候。
- 當(dāng)語言并不能完全表達(dá)意思的時候胁赢,可以加上手勢或者書面的形式加以描述。
多做一些積極的溝通
我們在面試過程中白筹,難免會遇到一些我們平時從未接觸過的內(nèi)容智末,如果這個時候你只是簡單地回復(fù)"我沒做過"、"我不了解"徒河、"之前工作沒有這方面的要求"之類的消極回答系馆,最終的面試總評可能會被標(biāo)上不善于思考和分析問題,從而導(dǎo)致面試分?jǐn)?shù)大打折扣顽照,因?yàn)闆]有哪個面試官是喜歡不善于思考和分析的應(yīng)聘者的由蘑,尤其你應(yīng)聘的還是一個研發(fā)崗位。
這里我建議大家在面試過程中最好還是多做一些積極的回答棒厘,少做一些消極的回答纵穿,除非你對這個問題是徹底不了解。
這里我們可以先和面試官通個氣奢人,表明自己平時對這塊接觸得不多谓媒,不過可以簡單分析一下。如果這個時候面試官沒有明確你不需要繼續(xù)進(jìn)行下去的話何乎,你就可以簡單思考和分析一下句惯,然后提出你的觀點(diǎn)。如果遇到一些好一點(diǎn)的面試官支救,說不定還會提醒你一下抢野,或者和你一起分析,這就非常棒了各墨。
面試禁忌
我們在面試的過程中指孤,一定要注意避雷,以下列舉出來的禁忌一定不要去嘗試觸碰!
切勿答非所問恃轩,偷換概念
结洼。當(dāng)面試官提出一個你并不是很了解的問題時候,即使冷場也不要答非所問叉跛,進(jìn)行偷換概念松忍。因?yàn)槊嬖囎钪v究的就是真誠二字。你這樣做只會加深面試官對你的厭惡筷厘。-
切勿侃侃而談
鸣峭。有很多人在面試時,為了能夠在面試官面前一展"風(fēng)采"酥艳,常常是夸夸其談摊溶,口若懸河,殊不知這其實(shí)是犯了大忌的充石。因?yàn)樵诿嬖嚬傺劾锔猓氵@樣啪啦啪啦沒完沒了地講下去,面試官可能會有如下四種理解:- 沒有快速答到要點(diǎn)赫冬,認(rèn)為你并沒有g(shù)et到這個問題的本質(zhì),對這塊掌握得不夠溃列。
- 賣弄自己的知識劲厌,日后和這種人合作起來會不會很費(fèi)力?
- 廢話連篇听隐,浪費(fèi)我的時間补鼻,這樣的人工作起來效率是否會打折扣?
- 知識掌握得還是比較詳細(xì)的雅任。(這可能是唯一一個為數(shù)不多的正面評價吧)
切勿進(jìn)行不當(dāng)?shù)姆磫?/code>风范。在一個不恰當(dāng)?shù)臅r機(jī)進(jìn)行一個不恰當(dāng)?shù)姆磫枺瑒荼貢?dǎo)致很多麻煩沪么。我們在面試過程中硼婿,一定不要和面試官進(jìn)行爭論或者反問面試官(虛心求教還是可以的)。如果面試官的水平或者度量還好的話可能沒什么關(guān)系禽车,但是也不能排除哪些個水平一般或者度量較小的面試官寇漫,你和他爭論是沒有任何好處的。你來這兒面試是為了找工作的殉摔,不是去爭個對與錯的州胳,得罪了面試官沒有任何好處。
切勿套近乎
逸月。面試過程中栓撞,一定要注意保持與面試官的距離,不要上來就套近乎碗硬,整得好像你跟面試官很熟似的瓤湘。即使問題答不上來也不要笑場瓢颅,記住面試是一件非常嚴(yán)肅的事情,不要過于兒戲岭粤!切勿問與面試結(jié)果相關(guān)的問題
惜索。這里我需要明確的一點(diǎn)是,一輪面試下來剃浇,如果你是合適人選的話巾兆,面試官一定會告訴你下面面試的流程。你那樣急吼吼地想要知道面試結(jié)果虎囚,非但沒有任何意義角塑,反而會加深面試官對你的厭惡。
Android技術(shù)面試一般涉及的要素
上文主要講解了一些面試通用的技巧淘讥,下面就讓我來簡單講解一下Android技術(shù)面試中主要涉及的內(nèi)容有哪些圃伶。
Java基礎(chǔ)
面試Android崗位,Java基礎(chǔ)那是必問的蒲列。如果項(xiàng)目中使用kotlin比較多的話窒朋,可能還會問一些kotlin相關(guān)的問題。
Java, 作為一門基礎(chǔ)語言蝗岖,考核的是應(yīng)聘者是否具備扎實(shí)的基本功侥猩。很多培訓(xùn)班或者非科班出身的人,經(jīng)常會栽在這一環(huán)節(jié)抵赢。一般這個環(huán)節(jié)的問題答不上來的話欺劳,基本上是提前結(jié)束了。
那么常見面試的Java基礎(chǔ)問題有哪些呢铅鲤?下面我們簡單列舉一些供大家參考:
- 1.Java集合類List划提,Map,Set相關(guān)的實(shí)現(xiàn)原理邢享。
- 2.Java線程池的實(shí)現(xiàn)原理和使用
- 3.Java線程同步相關(guān)的知識點(diǎn)鹏往。
- 4.Java鎖機(jī)制,以及死鎖產(chǎn)生的原因以及解決方案驼仪。
- 5.Java反射掸犬、泛型、注解相關(guān)的知識點(diǎn)以及使用绪爸。
- 6.Java類加載機(jī)制湾碎。
- 7.Java虛擬機(jī)的資源回收機(jī)制以及算法。
以上基本上是面試Android崗位的常見考點(diǎn)奠货,所以我們必須重視對Java語言的學(xué)習(xí)和理解介褥,即便你在平時工作中使用kotlin較多,也不能忽視對Java基礎(chǔ)知識的鞏固和學(xué)習(xí)。
設(shè)計(jì)模式
設(shè)計(jì)模式其本身其實(shí)也是屬于Java基礎(chǔ)范疇的柔滔,只不過部分大廠對設(shè)計(jì)模式的要求較高溢陪,所以會單獨(dú)擰出來進(jìn)行考察。
很多大廠都喜歡招那些對代碼有潔癖睛廊,有高追求的人進(jìn)來形真。在他們眼里,追求的并不是這個功能如何實(shí)現(xiàn)超全,而是這個功能如何更好地實(shí)現(xiàn)咆霜。只要性能不佳或者擴(kuò)展性不夠強(qiáng)的話,結(jié)局基本上就是推翻重構(gòu)嘶朱。
其實(shí)設(shè)計(jì)模式的考核因人而異蛾坯,面試官并不會過于為難你,因?yàn)樵O(shè)計(jì)模式其本身就是個非常虛的東西疏遏,很多人即使是了解設(shè)計(jì)模式脉课,在平時的工作中也不一定會使用它們。所以設(shè)計(jì)模式的考核更多的是加分項(xiàng)财异,并不是必要項(xiàng)倘零,所以即使答不上來其實(shí)也是沒什么關(guān)系的。
但是如果你在簡歷中寫了"熟悉/精通常用的設(shè)計(jì)模式"的時候戳寸,那么你就要小心了视事,因?yàn)槟憧赡軐媾R一波直擊靈魂深處的拷問。
那么設(shè)計(jì)模式一般會考察哪些內(nèi)容呢庆揩?下面我們簡單列舉一些供大家參考:
- 1.java設(shè)計(jì)模式的六大設(shè)計(jì)原則以及它們的關(guān)系。
- 2.單例模式跌穗、適配器模式订晌、裝飾者模式、代理模式蚌吸、外觀模式锈拨、策略模式、觀察者模式羹唠、責(zé)任鏈模式奕枢、命令模式、狀態(tài)模式佩微、中介者模式缝彬。這十一種常用的設(shè)計(jì)模式是考核的重點(diǎn),你需要掌握它們的優(yōu)缺點(diǎn)以及使用的場景哺眯。
- 3.適配器模式谷浅,裝飾者模式,外觀模式它們之間的區(qū)別是什么。
- 4.代理模式一疯、策略模式撼玄、狀態(tài)模式它們之間的區(qū)別是什么。
- 5.外觀模式墩邀、中介模式它們之間的區(qū)別是什么掌猛。
- 6.靜態(tài)代理和動態(tài)代理的區(qū)別,什么場景使用眉睹,實(shí)現(xiàn)動態(tài)代理的幾種方式荔茬。
- 7.簡單列舉幾個Android源碼中使用到設(shè)計(jì)模式的例子。
以上我只是簡單列舉了一些設(shè)計(jì)模式常見的考點(diǎn)辣往,因?yàn)樵O(shè)計(jì)模式的考核相對靈活兔院,因此還是以實(shí)際應(yīng)用場景為主。
例如站削,面試官可能會問你:簡單列舉幾個你常用的設(shè)計(jì)模式坊萝,談?wù)勊鼈兊膬?yōu)缺點(diǎn)以及使用的場景。
這個時候许起,大多數(shù)做Android開發(fā)的人腦海里可能只剩下單例模式十偶、觀察者模式這些個常常被他們?yōu)E用的設(shè)計(jì)模式。
這里我并不推薦大家說這兩種設(shè)計(jì)模式园细,為什么呢惦积?因?yàn)檫@兩種設(shè)計(jì)模式并不能很好地詮釋設(shè)計(jì)模式的美。而且你要知道任何東西聽多了猛频,人的心理是受不了的狮崩,這很容易導(dǎo)致面試官心態(tài)崩潰。
就拿我來說鹿寻,只要一有人無腦回答單例模式或者觀察者模式的時候睦柴,我都會情不自禁地提高問題的難度。你要知道毡熏,就是一個簡簡單單的單例模式坦敌,我也能給你問到心態(tài)崩潰。
所以聽我的勸痢法,不要一提到設(shè)計(jì)模式狱窘,你腦海里就只剩下單例模式或者觀察者模式,多了解了解其他設(shè)計(jì)模式财搁,對你會有很大的幫助蘸炸。
注意:對設(shè)計(jì)模式不夠了解的,可以參考我開源的 architect-java 項(xiàng)目尖奔,里面有我自己整理的一些簡單的算法和設(shè)計(jì)模式的講解幻馁,可以說非常實(shí)用洗鸵。
Android基礎(chǔ)
Android基礎(chǔ),不用說這是面試Android崗位必須要問的內(nèi)容仗嗦。要是連這個都答不上來膘滨,基本你的面試就提前結(jié)束了。
Android基礎(chǔ)是任何Android面試都需要考核的內(nèi)容稀拐。不過這也是按級別而定火邓,一般高級開發(fā)工程師的面試,Android基礎(chǔ)只是一筆帶過德撬。
那么Android基礎(chǔ)有哪些呢铲咨?下面我們簡單列舉一些供大家參考:
- 1.Handler機(jī)制以及相關(guān)知識。
- 2.Activity和Fragment生命周期蜓洪。
- 3.Android四大組件相關(guān)的知識纤勒。
- 4.Android進(jìn)程間通信的方式。
- 5.Context相關(guān)的知識隆檀。
- 6.Activity的啟動模式摇天。
- 7.Android動畫相關(guān)知識。
- 8.Android自定義組件相關(guān)知識恐仑。
- 9.Android事件分發(fā)機(jī)制以及觸摸事件沖突的處理泉坐。
- 10.ANR產(chǎn)生的原因以及避免ANR的方式。
- 11.內(nèi)存泄漏產(chǎn)生的原因以及定位解決的方式裳仆。
- 12.OOM產(chǎn)生的原因以及解決的方式腕让。
- 13.Android頁面渲染機(jī)制以及優(yōu)化方式。
- 14.LinearLayout歧斟、FrameLayout纯丸、RelativeLayout和ConstraintLayout的理解和性能對比。
- 15.Android各版本的特性静袖。
- 16.Android屏幕適配的技巧液南。
- 17.MVC,MVP,MVVM的理解與實(shí)踐。
- 18.Android的主題勾徽、樣式、屬性相關(guān)的內(nèi)容统扳。
- 19.JNI相關(guān)的知識剖效。
以上內(nèi)容是作為一名合格Android開發(fā)工程師所必備的知識點(diǎn)逼蒙,也是常見的考點(diǎn),請務(wù)必每條都要清楚掌握,這樣你在面試過程中才能游刃有余党涕。
Android源碼分析
Android源碼分析,算是要求較高的考核返奉。不過這在大廠面試中非常普遍尤蒿,因?yàn)楹芏啻髲S對Android源碼的分析和理解都有相當(dāng)高的要求粗合。
那么常見的Android源碼分析有哪些呢?下面我們簡單列舉一些供大家參考:
- 1.Android系統(tǒng)的啟動流程分析乌昔。
- 2.APP啟動的流程分析隙疚。
- 3.Activity的啟動流程分析。
- 4.Zygote進(jìn)程的創(chuàng)建和啟動流程分析磕道。
- 5.Window窗口創(chuàng)建和加載的流程分析供屉。
- 6.Dalvik和ART的理解。
- 7.RecyclerView的源碼分析溺蕉。
閱讀源碼是一件相對枯燥的事情伶丐,如果平時工作中涉及不到的話就很難堅(jiān)持下去,因此需要非常強(qiáng)的毅力疯特。不過話又說回來哗魂,如果你能夠熟練地掌握Android源碼的話,那么就非常有機(jī)會進(jìn)入大廠了漓雅。
Android進(jìn)階技能
這部分一般是對Android高級開發(fā)工程師的考核录别,主要涉及的點(diǎn)主要是一些性能優(yōu)化,技術(shù)細(xì)節(jié)方面的問題故硅。
要想成為一名高級開發(fā)工程師庶灿,性能優(yōu)化以及架構(gòu)設(shè)計(jì)永遠(yuǎn)都是繞不開的話題。做技術(shù)如果只是廣而不深的話吃衅,是不可能成為一名高級開發(fā)工程師的往踢。只有不斷提升自己的不可替代性,才能提高自己的價值徘层。
那么常見的Android進(jìn)階技能有哪些呢峻呕?下面我們簡單列舉一些供大家參考:
- 1.App穩(wěn)定性優(yōu)化。(crash趣效、性能以及體驗(yàn)等)
- 2.App啟動速度優(yōu)化瘦癌。
- 3.App內(nèi)存優(yōu)化。
- 4.App界面繪制優(yōu)化跷敬。
- 5.App瘦身優(yōu)化讯私。
- 6.App安全優(yōu)化。
- 7.網(wǎng)絡(luò)請求優(yōu)化西傀。
- 8.WebView使用優(yōu)化斤寇。
- 9.RecyclerView的緩存刷新優(yōu)化。
- 10.AOP技術(shù)的原理和實(shí)踐拥褂。
- 11.gradle腳本持續(xù)集成技術(shù)娘锁。
- 12.App進(jìn)程保活饺鹃。
以上只是Android進(jìn)階技能的一小部分通用性技術(shù)莫秆,除此之外還有很多細(xì)分領(lǐng)域相關(guān)的進(jìn)階技能间雀。總之镊屎,如果這項(xiàng)技術(shù)是你掌握而其他人普遍不了解的惹挟,那么它就屬于進(jìn)階技能。
新技術(shù)研究
Android這些年的技術(shù)發(fā)展基本上已經(jīng)趨向成熟杯道,所以對于新技術(shù)的研究也并不是那么看中匪煌,可能面試官就是隨口問一下,想要知道你的學(xué)習(xí)欲望強(qiáng)不強(qiáng)罷了党巾。
那么有什么新的技術(shù)可以在業(yè)余時間進(jìn)行研究呢萎庭?下面我們簡單列舉一些供大家參考:
- 1.Android組件化。
- 2.Android插件化齿拂。
- 3.Android熱更新技術(shù)驳规。
- 4.Android JetPack框架技術(shù)。
- 5.Kotlin開發(fā)技術(shù)署海。
- 6.Android Hook技術(shù)吗购。
- 7.AOP技術(shù)。
- 8.依賴注入技術(shù)IoC砸狞。
- 9.跨平臺開發(fā)技術(shù):ReactNative捻勉、Flutter等。
上面的內(nèi)容刀森,其實(shí)很多已經(jīng)算不上新技術(shù)了踱启,如果你現(xiàn)在還不了解的話,那么你最好花點(diǎn)時間了解一下研底,否則我只能說你是真的out了埠偿。
開源項(xiàng)目源碼分析
開源項(xiàng)目源碼分析和Android源碼分析一樣,也是考核應(yīng)聘者對原理的理解榜晦。如果僅僅只是會使用而不對其原理加以了解的話冠蒋,那么你也只能算是達(dá)到初級水平,這樣是無法進(jìn)入到大廠的乾胶。
那么開源項(xiàng)目的源碼分析我們應(yīng)該怎么做呢抖剿?首先我們需要帶著問題一點(diǎn)點(diǎn)閱讀源碼,搞清楚其內(nèi)部的實(shí)現(xiàn)邏輯识窿,然后梳理出其大致的設(shè)計(jì)架構(gòu)斩郎,畫出UML圖,最后總結(jié)出其中運(yùn)用到的設(shè)計(jì)模式和思想腕扶。
那么有哪些優(yōu)質(zhì)的開源項(xiàng)目值得我們?nèi)パ芯科湓创a呢?下面我們簡單列舉一些供大家參考:
- OkHttp
- Retrofit
- Glide
- LeakCanary
- RxJava
- ARouter
- EventBus
- ButterKnife
- GreenDao
- Dagger2
以上我列舉的基本上都是我們平時開發(fā)過程中經(jīng)常使用到的開源項(xiàng)目吨掌,認(rèn)真研究和分析他們的設(shè)計(jì)思想和精髓半抱,并積極運(yùn)用到我們平時的編碼當(dāng)中去脓恕,可以讓我們的技術(shù)得到質(zhì)的飛躍!
算法
部分大廠對Android開發(fā)工程師的算法也是有一定要求的窿侈,這部分沒有什么好說的炼幔,打開LeetCode去多刷刷題就可以了。
雖說Android開發(fā)工程師也需要掌握一定的算法史简,不過和那些專業(yè)做算法的相比肯定是沒那么高的要求的乃秀,我們并不需要把LeetCode的每道題都刷一遍,只要把一些簡單和中等難度的題刷一遍就可以了圆兵。
那么常見的Android算法題有哪些呢跺讯?下面我們簡單列舉一些供大家參考:
- 1.各類排序。(尤其二分法插入排序殉农、歸并排序需要著重掌握其思想)
- 2.手寫反轉(zhuǎn)鏈表刀脏、鏈表復(fù)制、鏈表合并超凳。
- 3.手寫隊(duì)列或者鏈表等數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)愈污。
- 4.字符串匹配、去重問題轮傍。
- 5.雙指針?biāo)惴▎栴}暂雹。
- 6.數(shù)組查重問題。
- 7.二叉樹的遍歷和序列化创夜。
- 8.貪心算法相關(guān)問題杭跪。
一個好的算法可能極大地提升應(yīng)用的性能,如果你平時有心的話就會發(fā)現(xiàn)在Android源碼中也經(jīng)常能看到算法的身影挥下,感興趣的可以閱讀一下SparseArray的源碼揍魂。
Android面試資料分享
資料不在于多,而在于精棚瘟。下面我就簡單分享一下曾經(jīng)對我?guī)椭容^大的幾個面試資料现斋。
- 【建議收藏】2020年中高級Android大廠面試秘籍,為你保駕護(hù)航金三銀四偎蘸,直通大廠
- 劉望舒的《Android進(jìn)階解密》庄蹋。這本書可以幫你系統(tǒng)地了解Android底層的一些基本原理。這里我就不給購買鏈接了迷雪,大家自己去網(wǎng)上搜吧限书。
- 設(shè)計(jì)模式詳解
- 計(jì)算機(jī)基礎(chǔ)知識大全 ,這是一個在Github上star有121k之多的開源項(xiàng)目章咧,里面的內(nèi)容非常全且基礎(chǔ)倦西,是準(zhǔn)備面試的必備寶典。
- Android算法實(shí)例和設(shè)計(jì)模式解讀, 這是我自己整理的內(nèi)容赁严,里面包含一些簡單的算法和設(shè)計(jì)模式的講解扰柠,可以說非常實(shí)用粉铐。
最后
今天的文章可謂是積蓄了我這幾年來的應(yīng)聘和面試經(jīng)歷總結(jié)出來的經(jīng)驗(yàn),干貨滿滿呀卤档!如果你能夠一直堅(jiān)持看到這兒蝙泼,那么首先我還是十分佩服你的毅力的。不過光是看完而不去付出行動劝枣,或者直接進(jìn)入你的收藏夾里吃灰汤踏,那么我寫這篇文章就沒多大意義了。所以看完之后舔腾,還是多多行動起來吧溪胶!
可以非常負(fù)責(zé)地說,如果你能夠堅(jiān)持把我上面列舉的內(nèi)容都一個不拉地看完并且全部消化為自己的知識的話琢唾,那么你就至少已經(jīng)達(dá)到了Android中級開發(fā)工程師以上的水平载荔,進(jìn)入大廠技術(shù)這塊是基本沒有什么問題的了。
另外采桃,如果你有任何Android面試方面的問題懒熙,歡迎微信搜索公眾號:【我的Android開源之旅】,屆時我將回答你的疑惑普办!
我是xuexiangjys工扎,一枚熱愛學(xué)習(xí),愛好編程衔蹲,致力于Android架構(gòu)研究以及開源項(xiàng)目經(jīng)驗(yàn)分享的技術(shù)up主肢娘。獲取更多資訊,歡迎微信搜索公眾號:【我的Android開源之旅】