概述
時隔一個多月,我又回來了。這段時間有不少人問我最近在幹嘛,面經什麼時候寫,怎麼這麼久沒更文了等等等等。當然了,最近我一直在執行了一次我計劃了近半年的跳槽。總得而言還不錯。說下我的情況。我是去年九月份開始計劃,十一月份開始準備,投了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…
更多文章請關注我的公眾號: