我所經歷的Android面試|掘金技術徵文

我就是馬雲飛發表於2019-03-04

概述

時隔一個多月,我又回來了。這段時間有不少人問我最近在幹嘛,面經什麼時候寫,怎麼這麼久沒更文了等等等等。當然了,最近我一直在執行了一次我計劃了近半年的跳槽。總得而言還不錯。說下我的情況。我是去年九月份開始計劃,十一月份開始準備,投了100+家公司,拿到了20+個面試,總共面試了四家,拿到了3個offer,週期差不多是一個月時間。

這個面經可能不是適合所有人,畢竟這次不是一線大廠的面經。不過內容可能你看了至少會發現自己還缺乏哪方面的知識點。適合人群:

  • 學歷一般

  • 技術一般的中級開發:畢業1-3年

  • 安卓應用層開發

在前面的文章中我已經談到了如何投遞簡歷和篩選面試和offer的,這邊我就不廢話了。

技術儲備

首先說一下,針對面試我們需要會一些什麼。不管是Android基礎還是Java基礎以及常見的資料結構和演算法,這些是無原則地必須要熟練掌握的,尤其是非計算機專業的同學,面試官一上來肯定是問你基礎,要是基礎表現不好很容易被扣上基礎不紮實的帽子,常見的就那些,只要你平時認真思考過基本上面試是沒太大問題的。

俗話說的好,面試造火箭,工作擰螺絲。所以,該準備的還是要準備。有些東西長時間不看會忘,但有些東西長時間不看也不會忘。所以學習的方式很重要。好了扯遠了,下面進入正題。(面試題的順序可能不一樣,印象中記憶的面試題)

面試公司

A公司(offer)

這公司主要是做資料雲的,公司規模一般。

  • 面試題

    1.曲面屏的適配

    2.activity中應不應該有static變數

    3.事件分發

    4.Handler

    5.APP瘦身

    6.使用者體驗

    7.service的兩種啟動方式和區別

    8.bundle機制

    9.Android 7.0特性

    10.kotlin的看法

    11.listview和recyclerview的區別

    12.資料銷燬怎麼儲存

上述題是同一個面試官分了2次來問我的。說實話這家公司面試順利的不行。面試官剛上來就問題目了。WTF?自我介紹呢?當時我還有點懵,不過也瞬間反應過來了,變跟著的他的問題去回答了。面試前後不到十分鐘,他就說:我對你非常滿意,薪資X如何?WTF?我當時還在想,這都發生了啥。不過我說對薪資不是很滿意。然後他說要不在考考你?所以我在前面說了,這些題是同一個面試官分了2次來問我的。前前後後面試了差不多1個小時。最後給了個offer。

B公司(over)

這家公司是一個知名的教育平臺,D輪融資,規模挺好,環境nice。

  • 面試題

    1.hashmap的原理

    2.java 7 8 9 10的區別

    3.lambda原理

    4.為什麼java 7中不能用lambda

    5.三級快取

    6.setcontentview原理

    7.gilde原理

    8.string和stringbuilder哪個儲存速度快

    9.事件分發

    10.執行緒

    11.如何學習的。

這家公司算的上我這幾家面試公司中最想去的一個把,也是唯一一個被pass的一個。不過到頭來,我是基本被秒殺了。看看上面的面試題可能也知道,難度係數還是有一點的。不過差不多能確定的是,面試官可能是java出生的。比如第一題,hashmap,問完原理之後,問了hashmap儲存的是什麼?hashmap內部是連結串列和陣列,那麼陣列和連結串列是怎麼儲存和刪除資料的。基本上,問的每一題到後面都會慢慢問到JVM的東西。JVM對於目前的我來說,簡直就是噩夢啊....所以直接over了。

C公司(offer)

一家做新零售的上市公司。

  • 一面

    1.IO

    2.手寫陣列實現佇列

    3.能不能動態add同一個佈局

    4.Handler機制

    5.手寫rxjava遍歷陣列

    6.scheme協議

    7.陣列擴容

    8.listview和recyclerview的區別

    9.service

    10.執行緒如何做到安全

    11.aop思想

    12.自由發揮

    13.hashmap原理

  • 二面

    1.五年的計劃

    2.有木有考慮轉崗比如ios

  • 三面

    是什麼讓你堅持的寫了三年的部落格

    問了學歷,談了產品

這家公司也是面試的時間最久的一個,前前後後2個多小時,一面的內容我也有些不會的,不過問到java的內容的時候,那個面試官明說了,java我也不知道問啥,隨便問問,然後主要的還是問了一些Android的內容。主要還是當場手寫的,這種手寫的麼,知道多少就手寫多少了。一面二面聊的東西也不是非常多,前前後後半小時。三面的話。上來就說,我剛才去看了你的github和部落格,然後就問了,是如何堅持了三年的。我談了我的一些看法,包括後面的學歷和產品之類的,我分別的都說了我的看法。最後很神奇的聽他說,要不你來我們公司做產品把。WTF?我當時都吃驚了。所以雖然技術面的一般,不過三面聊的很nice。最後也就拿到了offer。

D公司(offer)

一家C輪融資的公司,o2o平臺。

  • 面試題

    1.hashmap原理

    2.classloader原理

    3.執行緒安全

    4.sparearray原理(拆分包)

    5.gc機制

    6.gilde原理

    7.rxjava

    8.Ui優化

    9.效能

    10.瘦身

    11有木有看過框架原始碼,然後問原理

    12.單例模式

    13.listview和recyclerview和Scrollview巢狀問題,以及rv和lv的區別

    14.Android2個虛擬機器的區別(一個5.0之前,一個5.0之後)

這家公司問的東西挺多的,遇到不會的面試官也和我說了是什麼什麼。主要這家公司是我早上面了C公司之後,做了1個多小時地鐵去面試,感覺全程困的不行。所以回答還是比較一般。然後一面結束,二面面試官過來就說,剛才一面完了說技術開發沒啥問題了,二面具體算是我對公司的一個瞭解。稍微問了一些東西。面完了最後就說,過會讓hr發offer了。

談談非技術面試

上面的問題大多數還是技術面。我這邊稍微說下非技術面,一般非技術面試考你是溝通能力,表達方式,情商等眾多方面。不過一般都會環繞公司的發展方向,產品等問題進行討論。所以,單單技術好還是差一點的。比如某些公司問道,從使用者角度,談談我司的產品怎麼樣?所以在面試之前,最好下一下面試公司的app進行了解。如果沒找到app也可以上公司官網進行了解。比如我這次面試的公司A,就沒找到公司的APP,不過我去官網看了公司是幹什麼。

小結

面試完了之後,要學會總結自己到底哪方面不足,導致XX公司沒有拿到公司,比如我,因為JVM和資料結構薄弱,導致沒拿到B公司的offer。找到了自己的不足之後,我們就需要花時間對這方面進行彌補,不管是單純的為了面試還是為了以後的技術沉澱。說白了,都是為了自己好。通過這次面試,我也知道自己哪方面的不足,為了以後考慮,所以我也會抽時間對這方面進行彌補。

人生的路還是要自己走,別人最多給你一些方向,平時但行好事,莫問前程,一步步的努力終將得到回報。希望看完文章後,找到自己的問題所在,努力前行,給將來的自己一個感謝的機會。

掘金技術徵文連結? juejin.im/post/5aaf2a…

更多文章請關注我的公眾號:

我所經歷的Android面試|掘金技術徵文


相關文章