面經更新於(2017.09.28)
內推開始一個多月到現在也就面試了阿里、拼多多跟網易、面經有限。(阿里跪了,最後通過的是網易跟拼多多)
記性不好,想起來的也就這麼多,大概只有二分之一左右吧,都相對偏基礎,發散性的問題不多。
所以,個人目前這麼點經驗來看,必須要知道的是android基礎+計算機網路(計算機網路必問!!!!!!),然後專案涉及方向多點也有好處,比如混合開發,JNI/NDK,二維三維,至少看起來比較全面。然後自己簡歷上寫的東西一定要熟,會用也不行,得知道原理(捂臉,不然被問炸)
阿里菜鳥
一面
- 自我介紹(處女面,跑上樓時候已經氣喘吁吁,甚至都不知道如何自我介紹,介紹了一分鐘我尬場了)
- RxJava、EventBus底層原理(一定程度是自己挖坑用過這些,然後讓我跳的)
- 如何自我實現一個網路請求框架
- 用過React Native沒。(自己用過Ionic,但是面試官沒聽過,Ionic在2015年相對較火)
- 平時如何自我學習,2017 Google I/O大會討論內容有哪些
- MVP框架,如何用,怎麼用。怎麼解耦。跟MVC的差別
二面(莫名其妙的交叉面):
- 直接省略了自我介紹,問專業方向(GIS),問如何處理地理圍欄
- 如何省電又能實時跟伺服器端互動(我說的是AlarmManager+Service),一直傳輸位置資訊給伺服器。用了什麼協議
- 由上面的扯到OkHttp底層原理
- Http2.0與1.1有啥區別(由這裡開始就炸了,完全沒複習計算機網路,尤其還是偏背誦的知識的) 5. 有哪些二進位制傳輸協議
那時候剛開始找工作,完全不知道複習知識點,好多都是迷迷糊糊知道,說就說不出來了。
拼多多(現場面。筆試4過3 )
一面(面試官都不太瞭解JAVA,我沒看懂拼多多套路):
- 把筆試的題拿出來,問程式碼思路邏輯,比如為什麼用TreeMap不用HashMap
- 如何對APP進行記憶體優化
- 專案的併發度多大,如何處理crash後的資訊回傳
- 計算機網路相關
二面
- 聊了下涉及到OpenGL的專案。以及OpenGL3.0與2.0的差別。
- 手撕程式碼:多叉樹的後續遍歷
其實感覺越是像拼多多這種有點無厘頭的面試,雖然面試過程輕鬆,但是結果往往也都別在意。不是學霸批,HR說現在說最早校招時候出結果,估計就是沒結果.(最近幾天發來訊息說offer通過了,手動捂臉)
網易
剛回家5天,一條簡訊就從西安飛了回來,關鍵單程路費還不能報銷,8.21號面試的,然後後面還有7天假期就癱瘓在了寢室,暑假算毀了還好有個offer安慰下
一面(明顯大佬級別):
- 你搞android應該也很瞭解Java的多執行緒吧,講講通過Handler為什麼能夠更新UI。(一開始我以為是談談Handler的原理,講了一通,面試官
對我說你講的我都知道,然後一步步誘導,終於我說到了ThreadLocal,然後他說對。之後就稍微扯了下ThreadLocal) - 根據簡歷,問自己要實現一個地圖容器的話怎麼實現。然後一步一步延伸下去聊到了View與SurfaceView
- JNI/NDK開發如何使用,如何定義java檔案與cpp檔案中的方法(主要看是不是真的用過吧)
- 四種啟動模式,用過哪些,出過什麼問題。(包括聊到了onSaveInstanceState跟onRestoreInstanceState的場景與時機,然後在一個點跟面試官
看法不同,我說我除錯時候遇到過相關問題,面試官讓我回去再確認下) - 如何處理記憶體洩漏。也提到了簡歷中20000*20000大小的圖片如何載入的
- socket與Http區別,socket長連線斷開了怎麼辦
- 在socket傳輸檔案中連結斷開了,怎麼繼續傳輸檔案。引申到了如何斷點續傳
- 涉及到自己專案中用到的優化方案與策略,尤其針對圖片的
- 看到用過GreenDao,問有沒有在一個事務中提交兩種不同的操作。(覺得應該是說一個事務中,比如更新一張表中的一個Person記錄,新增一條Dog記錄)
- MVP框架,混合開發相關
面試官對我的總體評價:用過的開源庫不少,為什麼不自己寫呢(哎,尷尬)。問了能不能實習,然後留了簡歷做了個記錄就下面一輪面試了
二面(是個帥小夥,我當時以為自己一面跟二面順序反了):
- 自我介紹
- Handler機制
- 如何自己實現執行緒池。執行緒池內的佇列如何管理。執行緒池大小N的話,連續push進來M個的任務(M>>N),如何處理,比如20大小的執行緒池扔進來10000個任務
- 個人方向偏移動GIS,跟地圖打交道比較多,談到了遙感影像(也就是稍微大點的圖片啦)快取置換、回收策略。面試官讓詳細講了一遍,涉及到 的點是LRU跟Java的幾種引用,一些資料結構。問記憶體快取怎麼做的,K-V對設定,提到了類似Picasso中,需要本地處理旋轉,但是URL一樣的 時候,K值的設定方式
- OkHttp底層原理,TCP的三次握手四次揮手全流程(畫了每次握手揮手時候的報文內容與控制位設定)
- 還看過哪些原始碼(我說看過EventBus,貌似面試官也不想問了,笑眯眯的說你去等HR面吧)
附掘金秋招徵文大賽連結