2016BAT+華爲+滴滴+搜狗Android開發崗面試問題整理

實習面了阿里和騰訊,校招面了騰訊,百度,華爲,搜狗和滴滴,總結一下遇到的面試知識點。知識點是散的而且也比較容易掌握,難點是這些知識點的應用中並且深刻理解。實習面試的時候阿里通過,騰訊一面跪(內推和實習校招都是一面跪).校招的時候,百度華爲搜狗滴滴面試通過,騰訊仍然是一面跪(內推壓根就沒給面試機會)

關於下面的問題需要說明一下,這些知識點是一個彙總,寫的比較簡略,但是有些知識點是可以延伸到非常深入,可以問的也非常多。所以僅僅從網上找一些答案來記一下其實用處不大,但是作爲一個查漏補缺的提綱還是可以的;另外一點是每個人遇到的問題是不一樣的,一般是根據項目來問,不過大部分都一樣,畢竟都跳不出Android這個範疇,所以多找幾篇Android的知識點彙總帖基本就能覆蓋所有知識點了。

面試問題彙總

Android基礎

  1. View的繪製流程;自定義View如何考慮機型適配;自定義View的事件分發機制;View和ViewGroup分別有哪些事件分發相關的回調方法;自定義View如何提供獲取View屬性的接口;
  2. Art和Dalvik對比;虛擬機原理,如何自己設計一個虛擬機(內存管理,類加載,雙親委派);JVM內存模型及類加載機制;內存對象的循環引用及避免
  3. 內存回收機制與GC算法(各種算法的優缺點以及應用場景);GC原理時機以及GC對象;內存泄露場景及解決方法;OOM的避免及解決方法
  4. 四大組件及生命週期;ContentProvider的權限管理(讀寫分離,權限控制-精確到表級,URL控制);Activity的四種啓動模式對比;Activity狀態保存於恢復
  5. Fragment生命週期;Fragment狀態保存
  6. startActivityForResult是哪個類的方法,在什麼情況下使用,如果在Adapter中使用應該如何解耦
  7. AsyncTask原理及不足;IntentService原理
  8. AstncTask+HttpClient與AsyncHttpClient有什麼區別
  9. 如何保證一個後臺服務不被殺死;比較省電的方式是什麼
  10. 如何通過廣播攔截和abort一條短信;廣播是否可以請求網絡;廣播引起anr的時間限制
  11. 進程間通信,AIDL
  12. Handler機制及底層實現
  13. Binder機制及底層實現
  14. ApplicationContext和ActivityContext的區別
  15. 一張Bitmap所佔內存以及內存佔用的計算
  16. 對於應用更新這塊是如何做的?(灰度,強制更新,分區域更新)
  17. 混合開發,RN,weex,H5,小程序(做Android的瞭解一些前端js等還是很有好處的)
  18. 說一款你認爲當前比較火的應用並設計(直播APP)

Java基礎

  1. 集合類以及集合框架;HashMap與HashTable實現原理,線程安全性,hash衝突及處理算法;ConcurrentHashMap
  2. 進程和線程的區別;多線程與線程池
  3. 數據一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖
  4. 同步的方法;多進程開發以及多進程應用場景
  5. 服務器只提供數據接收接口,在多線程或多進程條件下,如何保證數據的有序到達
  6. ThreadLocal原理,實現及如何保證Local屬性
  7. String StringBuilder StringBuffer對比
  8. 接口與回調;回調的原理;寫一個回調demo;
  9. 泛型原理,舉例說明;解析與分派
  10. 抽象類與接口的區別;應用場景;抽象類是否可以沒有方法和屬性
  11. 靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?原因
  12. 修改對象A的equals方法的簽名,那麼使用HashMap存放這個對象實例的時候,會調用哪個equals方法

數據結構與算法

  1. 堆和棧在內存中的區別是什麼(數據結構方面以及實際實現方面)
  2. 最快的排序算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個算法?堆和樹的區別;寫出快排代碼;鏈表逆序代碼
  3. 求1000以內的水仙花數以及40億以內的水仙花數
  4. 子串包含問題(KMP 算法)寫代碼實現
  5. 萬億級別的兩個URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分組->多文件讀寫效率->磁盤尋址以及應用層面對尋址的優化)
  6. 蟻羣算法與蒙特卡洛算法
  7. 寫出你所知道的排序算法及時空複雜度,穩定性
  8. 百度POI中如何試下查找最近的商家功能(座標鏡像+R樹)

其他

  1. 死鎖的四個必要條件
  2. 常見編碼方式;utf-8編碼中的中文佔幾個字節;int型幾個字節
  3. 實現一個Json解析器(可以通過正則提高速度)
  4. MVC MVP MVVM; 常見的設計模式;寫出觀察者模式的代碼
  5. TCP的3次握手和四次揮手;TCP與UDP的區別
  6. HTTP協議;HTTP1.0與2.0的區別;HTTP報文結構
  7. HTTP與HTTPS的區別以及如何實現安全性

非技術問題彙總

  1. 研究比較深入的領域有哪些
  2. 對業內信息的關注渠道有哪些
  3. 最近都讀哪些書
  4. 自己最擅長的技術點,最感興趣的技術領域和技術點
  5. 項目中用了哪些開源庫,如何避免因爲引入開源庫而導致的安全性和穩定性問題
  6. 實習過程中做了什麼,有什麼產出
  7. 5枚硬幣,2正3反如何劃分爲兩堆然後通過翻轉讓兩堆中正面向上的硬幣和反面向上的硬幣個數相同
  8. 時針走一圈,時針分針重合幾次
  9. N * N的方格紙,裏面有多少個正方形
  10. 現在下載速度很慢,試從網絡協議的角度分析原因,並優化(網絡的5層都可以涉及)

HR問題彙總

  1. 講一件你印象最深的一件事情
  2. 介紹一個你影響最深的項目
  3. 介紹你最熱愛最擅長的專業領域
  4. 公司實習最大的收穫是什麼
  5. 自己的優點和缺點是什麼?舉例說明
  6. 你的學習方法是什麼樣的?實習過程中如何學習?實習項目中遇到的最大困難是什麼以及如何解決的
  7. 說一件最能證明你能力的事情
  8. 項目中遇到最大的困難是什麼?如何解決的
  9. 你的職業規劃以及個人目標;未來發展路線及求職定位
  10. 評價下自己,評價下自己的技術水平,個人代碼量如何
  11. 通過哪些渠道瞭解的招聘信息,其他同學都投了哪些公司
  12. 業餘都有哪些愛好
  13. 當前的offer狀況;如果BATH都給了offer該如何選
  14. 你對一份工作更看重哪些方面?平臺,技術,氛圍,城市,money
  15. 理想薪資範圍;杭州崗和北京崗選哪個
  16. 理想中的工作環境是什麼
  17. 實習過程中周圍同事/同學有哪些值得學習的地方
  18. 家人對你的工作期望及自己的工作期望
  19. 若上司在公開會議上誤會你了,該如何解決
  20. 是否可以實習,可以實習多久
  21. 你看中公司的什麼?或者公司的那些方面最吸引你?

面試結束時的QA環節

一般在面試結束的時候,面試官會問”你還有什麼要問我的嗎”,這裏記錄了幾場面試中記錄下來的問題,不是很全面,但是這部分問題建議還是按自己的理解,不要觸及紅線即可
1. 貴公司更注重應屆生的哪些品質呢(基礎,技術熱情)
2. 技術全棧如何看待,新人技術培養制度
3. 公司的文化,開發團隊的加班情況,福利制度,員工活動,招聘政策
4. 你怎樣看待某某技術的發展前景
5. 公司一般移動開發團隊是多大?幾個人負責一個產品或者業務?

一些體會

  1. 每個人最終都會有至少一個offer
  2. 一開始的順利並不代表能笑到最後
  3. offer多多益善,但這是個單選題,適合自己的纔是最好的
  4. 找實習和找工作是一場實力,運氣,綜合能力的考驗(這三點的任何一點都可以讓你拿到還不錯的offer)
  5. 拿到offer並不代表結束
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章