太強了!Android開發4年網易三面後拿下offer定薪25k*14.5,漲薪50%

我的情況

本人很愚笨,堅持夢想纔是最重要的,最後你會得到應有的回報。 之前面經中的大神說道“重要的事情說三遍,心態最重要,心態最重要,心態最重要”。

在這裏我就不談心態了,說說硬件,同樣重要的事情說三遍

基礎最重要。
基礎最重要。
基礎最重要。

當你的基礎知識好到讓面試官怎麼都問不倒的時候,那你離offer就很近了。

好了,鋪墊已經做好了,接下來就直接上面試乾貨了。

一面

1.算法題:123 -> 321 超出Integer最大值範圍,正負數怎麼處理
2.hashmap put()底層原理,發生衝突時,如何去添加(順着鏈表去遍歷,挨個比較key值是否一致,如果一致,就覆蓋替換,不一致遍歷結束後,插入該位置)
3.Handler內存泄漏與Looper
4.Message爲什麼沒有被回收
5.手寫單例模式,volatile作用 ,爲什麼要雙重判空,作用是什麼,一句話概括
6.爲什麼要泛型擦除,寫一個泛型方法和一個泛型類
7.一張圖片加載到內存,如何計算圖片佔用內存的大小,ARGB8888與ARGB565有什麼區別
8.APK打包流程
9.四種引用方式,他們之間的區別,什麼時候用到弱引用

總結:

1.算法題最主要的目的是得出結果,不要總是糾結於過去刷過題的思路,特別是當時的思路無法理清時,就應該立馬變換一種思路去解決,哪怕是時間複雜度和空間複雜度都比較高,而不是遲遲卡在那裏。
2.將技術點總結成簡單的話語,提煉技術要點

二面

1.線程池線程是如何保持線程不被回收的?在for循環裏一直循環,循環體內會有take方法阻塞?

2.線程可以多次調用start嗎? 會出現什麼問題? 爲什麼不能多次調用start?

3.RecyclerView是怎麼優化的

4.MVP是如何實現的,他們之間的關係和職責

5.MVVM是如何實現的? ViewModel的底層原理

6.熱修復框架底層的原理,Tinker,美團的

7.pid與uid的區別

答:pid是進程ID,PID是進程的身份標誌,系統給每個應用分配獨一無二的PID(一個應用可能有多個進程,每個進程有唯一的PID)
進程終止後PID會被系統回收,再次打開應用會重新分配一個PID。
UID在linux中是用戶的ID,用於權限的管理。在android中,由於android是單用戶系統,所以uid被用於實現數據共享。

8.你們的項目架構是怎樣的?

9.線程IO密集型和CPU密集型區別及線程數的設置

答:CPU密集型任務:在一個任務中,主要做計算,CPU持續在運行,CPU利用率高,具有該特點的任務稱爲CPU密集型任務。
IO密集型任務:在一個任務中,大部分時間在進行I/O操作,由於I/O速度遠遠小於CPU,所以任務的大部分時間都在等待IO,CPU利用率低。
CPU密集型任務:線程數爲CPU核數。幾個線程可以並行執行,不存在線程切換開銷,提高CPU利用率,減少線程切換性能損耗。
IO密集型任務:線程數爲CPU核數的2倍,在線程進行I/O操作時,其他線程可以繼續使用CPU,提高CPU的使用率。

三面

1.簡單自我介紹
2.項目結構,用到了哪些技術?
3.過往經歷
4.爲什麼想換工作?
5.最近看的項目,用的什麼技術?
6.北京市2個月搖一次號,搖中的概率是3000分之一,請問需要搖多久,概率能達到百分之50?
7.拋一枚硬幣,正反面的概率各佔50%,請問,連續兩次反面的概率是多少? 正正,正反,反正,反反 ,出現的概率各佔四分之一。

面試總結

還是那句話,基礎最重要。開發年限和技能固然重要,然而最重要的還是基礎牢固,並且思維要靈活,面試官喜歡觀察你的反應能力。記住面試官很忙,他們基本不會跟你嘮閒嗑,除非你很厲害沒啥可問的了,所以回答問題之前一定要分析問題背後他們想了解你什麼。如果面試官就是問的很模糊,分析不透,大可直接問面試官你想知道什麼,這是沒有問題的。

自己對於互聯網有一些小小的見解:隨着資本的冷卻,整個互聯網市場也逐漸的冷靜下來。Android應用開發從一開始能說幾個四大組件的名詞,能隨便寫個監聽事件,就能拿到高達上萬的月薪的時代了。歸根到底並不是工作難找了,而是Android應用開發工程師這個職位已經趨於正常,再也不是沒什麼技術也能拿高工資的香餑餑。當然這個也不是絕對的,對於中高級的開發人員來說,市場還是比較缺少的,尤其是知名企業對於招聘員工來說,不僅要求有過硬的技術,還要求有高素質,好的教育背景等等。總的來說,高工資可以給你,但是前提條件是你要足夠優秀,或者說讓面試官覺得你很優秀。

其實面試過程就是一個把你自己推銷給別人的過程,對於我們來說就是要讓面試官感覺你技術好,有培養價值。感慨有點多了,還是來點乾貨吧,大概列舉一下每一輪面試的大概範圍和深度,但是也不是絕對的,還是要看具體情況。

筆試

對於社招的程序員來說,基本上不需要筆試,但是也有公司是需要的,例如:今日頭條和網易都有筆試。筆試都是比較基礎的一些知識,Java、Android等方面的,一般不會有網絡,計算機等方面的筆試,一般情況下大家都能答出來。

一、二面

近一段時間的面試經歷來說,一、二面的問題沒有什麼很大的區別(公司基本上都有3面技術面,但是也有例外,我在網易就是2面技術面。),基本上都是一線開發人員。主要考察你是否有牢固的基礎知識和是否在平常開發中能熟練使用。

  • 是否能講解清楚你所做的項目,以及使用到的相關知識。
  • Android基礎知識
  • Java基礎知識,大概是多線程,線程安全,集合類,JVM,類相關知識等。
  • Android一些源碼的閱讀
  • 優秀的第三方框架源碼閱讀

三、四面

一般公司都是三輪技術面,但是也有四輪技術面的,不過不多。很多公司基本上每一輪面試官都會記錄他所詢問的問題,以便給下一輪面試官作參考,還有就是避免對同一個知識點多次詢問。所以到了這輪面試,基本上不會再詢問比較基礎的知識。

  • 會從兩個方面考察,
    • 廣度:比較新的技術(Rxjava,插件化等),JVM,GC,網絡,數據庫,Android(一般不會詢問之前面試官問過的問題)。
    • 深度:一般會通過1或2個問題來考察,例如:map接口下都有什麼子類->hashmap和hashtable區別->hashmap實現原理->怎麼解決hash衝突->是否瞭解concurrentHashmap->concurrentHashmap實現原理->volatile實現原理(concurrentHashmap讀是不加鎖的,使用到了volatile)。
  • 項目中的貢獻,所做的優化。
  • 設計能力,基本上不多,這個要看面試的崗位,因爲我這裏面試的只是高級開發,並不是架構。
  • 工作中的亮點和突出。

hr面

基本上到了這輪,你就算通過面試了。hr會詢問一些你的經歷,最主要的還是和你商定薪資待遇。在這輪,大家應該要對自己的薪資水平有一個大體的瞭解,一般都是在原來的工資基礎上增長20%~30%的樣子,當然,如果你在面試過程中表現非常優秀,也可以不受這個限制。當然如果公司誠心要你,就算你要的工資過高,hr也會委婉的告訴你,不會直接把你pass。

面試前的知識儲備 & 複習

接下來分享的系統學習資源以詳解各大互聯網公司的 Android 常見面試題爲主線,從面試的角度帶你介紹必備知識點,以及該知識點在項目中的實際應用

幫你在現在的基礎上,重新梳理和建立 Android 開發的知識體系。無論是你短期內想提升 Android 內功實力,突破自己工作中的能力瓶頸,還是準備參加 Android 面試,都會在這份資料中有所一些收穫。

從架構基礎開始,分了8個模塊來逐步從基礎進階到架構師的環節:

1、架構師築基語言基礎

重點內容:深入Java泛型+註解深入淺出+併發編程+數據傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO

2、設計思想解讀開源框架

重點內容:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網絡訪問框架設計+RXJava響應式編程框架設計+IOC架構設計+Android架構組件Jetpack

3、360°全方位性能調優

重點內容:設計思想與代碼質量優化+程序性能優化+開發效率優化

4、Android框架體系架構

重點內容:高級UI晉升+Framework內核解析+Android組件內核+數據持久化

5、NDK模塊開發(音視頻開發系列)

重點內容:NDK基礎知識體系+底層圖片處理+音視頻開發

6、Flutter學習進階

重點內容:Html5項目實戰+Flutter進階

7、微信小程序開發

重點內容:小程序介紹+UI開發+API操作+微信對接

最後分享一份面試寶典,祝每個人面試順利。

Android BAT高級開發面試題及答案解析

面試的前一週時間內,就可以開始刷題衝刺了。請記住,刷題的時候,技術的優先,算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎麼會問。

最後以上內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容。或者點擊 【這裏】 查看獲取方式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章