Android面經:百度騰訊滴滴美團頭條網易搜狐華爲鏈家小米拼多多

素材選自:無名huster前端

去年秋招面試了一些公司,如今把面經和麪試體驗發一下,大佬們共同窗習。java

因爲水平比較差,因此纔得到幾個offer(小公司不算):百度,美團,小米,華爲,鏈家,百度外賣(後期得到頭條,拼多多Offer)android

職位都是:android客戶端開發ios

最後有一些資料,是準備面試的知識彙總,數據結構,計算機網絡啥的基本上都有了。嗯,本身收錄、整理和分類的,還請尊重知識產出。c++

小米

image

8月29日 小米一面 (1小時20分鐘)git

  1. 講一個你印象比較深入的項目
  2. 講一下Volley框架的實現機制
  3. BLE藍牙的使用流程
  4. 設計模式你說下
  5. binder機制應用層面上說下
  6. View事件分發機制說下
  7. android性能優化說下(佈局優化、內存泄露、bitmap壓縮等等..)
  8. eventBus框架是幹什麼用的,實現機制?
  9. ANR和crash遇到過麼?怎樣解決
  10. 編寫代碼(給一個網址,編寫代碼)

輸入一個n*n的正方形矩陣a,要求填充邏輯代碼,將矩陣a順時針旋轉90度github

8月30號 小米二面(1小時20分鐘)面試

  1. 自我介紹
  2. 你作的這幾個項目挑出一個來說一下
  3. 步態分析器這個項目的話,你感受核心實現是什麼?
  4. 講一下藍牙有幾種方式,你用的BLE的藍牙流程說下
  5. 假如說你的app如今使用了一個A的第三方庫,那麼爲了之後能夠容易換成B的第三方庫,你會怎樣去作減小後面的修改難度?
  6. android的多線程你知道多少?介紹下
  7. asyncTask的內存泄露你知道麼?
  8. 給一個網頁,手撕代碼

題目:一個字符串,開始可能有0-N個空格,而後在這個串中每一個單詞之間有1-N個空格,最後的結束也有N個空格,如今要求最後的輸出結果是開始不能有空格,每一個單詞之間只能有一個空格,最後所有是空格的格式算法

1、先實現,無要求sql

2、空間複雜度要求爲O(1),再優化

9月20號 武漢現場面三面 40分鐘

  1. 自我介紹
  2. 講一個你熟悉的項目
  3. 手寫代碼:一個數組中的數字,有大有小,如何用最少的+1或者-1的操做消除數組中的數字差別過大的狀況,返回你的操做次數
  4. intentService瞭解麼?說一下他的用處和原理
  5. intentService和service的區別
  6. intentService如今要求讓他的任務能夠並行執行,你會怎樣去實現
  7. asyncTask說下主要的方法
  8. activity銷燬以後,那麼asyncTask若是還在執行,那麼會形成什麼問題
  9. activity的旋轉屏幕的生命週期變化
  10. 手寫代碼:一個單鏈表,每三個節點反轉一次
  11. 你有什麼想問個人麼?

面試體驗:

小米每次面試基本上必備的就是手撕算法,so,必定要作好點準備,難度都通常,不是難的那種。另外從android的技術上來講,從個人面試經從來說都是一點即過,面試官沒有多少深刻的挖掘知識點。面試官都很nice,有些算法上卡着了,會一步一步的引導你。贊一個

今日頭條

image

9月25號 今日頭條 1面 30分鐘

  1. 自我介紹
  2. 兩個有序數組,求這兩個有序數組中最大的K個數(要求時間複雜度空間複雜度較低)
  3. 對於棧這個數據結構,實現如下幾個方法:push,pop,max(要求空間複雜度較低)

今日頭條 2面 1小時

  1. 自我介紹
  2. android事件分發機制說下
  3. touchSlop,touchDelegate的理解
  4. viewStub,merge、include的理解
  5. java引用級別
  6. 用過什麼第三方庫?(用過eventBus,Volley。知道RxAndroid,okHttp等。。寫過demo)
  7. 用過什麼編譯器
  8. 內存泄露緣由(從JVM開始和他提及)
  9. gcRoot有哪些?
  10. 如何檢測內存泄露,有什麼方式
  11. 算法:一個有序數組,尋找k值出現的第一個位置(針對算法要求最優)
  12. 算法:每一個人都有工做時間區間,如今有N我的,他們每一個人分別有K個工做區間。如今要找到一個你們都空閒的時間段進行開會,那麼如何來找到這些空閒時間段?講出思路和時間複雜度,空間複雜度

面試體驗:

武漢現場面,一面不是android開發面試官,應該是java的,因此就問了算法了。每一個算法不是很難,可是會讓你寫最優,只有思路不行,必需要完整寫出來。二面是android面試官,嗯,總的狀況的話答下來有80%左右吧。前面都還好,最後我問他問題的時候我問他對我評價如何,而後他說我對技術不熱情,問我是否是跨專業?我一臉懵逼,,理由以下:你知道目前的新框架爲何還在項目中用舊的框架?你項目中還有用到eclipse的,爲何不用androidstudio?而後我給他說:我選擇框架只選擇針對我這個項目合適的框架,而且框架原理相同,我知道了一個原理了其餘的也就是同樣的了。而且我平時也用過新框架本身搞demo;第二:我進入實驗室的時候就是eclipse的項目,我是接鍋的。後面的我本身搞得項目就用androidstudio了,平時demo我也是用androidstudio了,有問題麼?拿着個人簡歷而後問我是否是跨專業?呵呵噠,算您會挖苦人。。直接告訴他,今天就到這吧,面不起我還能夠躲得起。。

百度

image

8月24日 手機百度電話一面 34分鐘

  1. 二叉樹的非遞歸實現(前序、中序、後序)
  2. 給一個NN的矩陣,找出22矩陣的和的最大值,時間複雜度?最優?
  3. android藍牙鏈接(傳統藍牙,BLE藍牙),如何鏈接?
  4. JVM內存分區(每部分異常會報什麼錯誤?)
  5. JVM垃圾回收算法(詳細介紹)
  6. JVM垃圾回收器(詳細介紹)
  7. https鏈接過程,握手過程
  8. 對稱加密,非對稱加密
  9. 三次握手過程
  10. android消息機制
  11. android事件分發機制

8月29日 百度二面(一小時50分鐘)

  1. 講一下你作的這些項目裏面哪一個印象最深入
  2. 你負責的這些部分講幾個你認爲比較重要的點
  3. Volley框架機制說下,你能抽取出(學到)幾個技術點?
  4. android性能優化說下
  5. binder實現機制
  6. AIDL文件的用處,aidl生成的類有什麼用?講下這個類作的事情和原理
  7. 進程之間是相互隔離的,那麼從A進程到B進程使用binder進行通信,那麼猜測下究竟是怎樣作的呢?
  8. View的消息機制你說下,對於ViewGroup和View有什麼不同?
  9. 事件攔截的話,可不能夠從子View來進行操做?具體思路說下
  10. 考慮一種場景:listView加上一個header實現下拉刷新的功能,你要怎樣去實現?說說思路
  11. 若是這樣的場景下:listView和header屬於不一樣的view,相互爲兄弟View,外部套一個大的viewGroup,如何進行事件分發?從初始態到用戶拉下出現header的過程來依次分析
  12. 若是是這樣的場景:listView和header屬於同一個view層,那麼下拉刷新又該如何實現?事件攔截又該如何去作?
  13. 發過來一個網址,手寫代碼

根據他提的需求,寫代碼(主要就是設計模式的使用原則和設計模式的使用):基本上涉及的知識點:策略模式,工廠方法模式。以後根據不一樣的新需求如何儘量少的修改原來代碼來實現新功能。

  1. 對上一步中的抽象類和接口說下優缺點?
  2. 爲何java是要求是隻能單一繼承?卻能夠實現多個接口?說下你的看法
  3. 抽象類屬性中什麼場景下是優勢?什麼場景下優勢又變成了缺點?
  4. 使用接口什麼場景下是優勢?什麼場景下優勢又變成了缺點?

權利翻轉:你有什麼須要問的麼?......

百度三面(50分鐘)

  1. 自我介紹
  2. 能不能當即過來實習?
  3. 網絡分層?7層,5層,4層,具體說下每層幹啥
  4. ip是哪一層協議?
  5. post與get的區別,get有長度限制麼?
  6. 爲何要使用ip協議?直接使用mac地址鏈接不能夠麼?
  7. 全球這麼多廠商,生產的設備若是有重複的mac地址,你如何解決這個問題?網絡數據包傳輸會有什麼問題
  8. 你是網絡管理員,從英國的一臺電腦要打開中國的一個網頁,如今就是鏈接不上(dns正常能夠解析到正確IP),你能考慮到哪些問題?
  9. 你是衡水的手機號,如今你在湖北,那麼北京的手機號打你的手機爲何你能夠接到電話?

接着問,你數據結構知道吧?

  1. 快排時間複雜度是多少?最差?平均?爲何時間複雜度是O(N*logN)?怎樣推導出來的?
  2. 你對app推送有什麼瞭解?若是是你來實現的話,你能怎麼作?
  3. 中國有13億人,對全國身份證號進行排序,你會怎樣去作
  4. 你上級讓你去安排一個日子來舉辦活動,要求這一天必定不能是週六或者週日,必定要在週一到週五之間,你如何判斷一年裏面有哪些日子是合適的?
  5. 你有什麼想問個人?

**面試感覺:**1面基本上完美,很舒服。2面面試官頗有深度,而且人超棒,會引導你去如何解決。3面是經理面。我說錯了一句話,嗯,致使失敗了吧,其實三面總的來講打得也算是馬馬虎虎到70%,一句話失誤致使最後失敗了吧。。。鬱悶了好多天,,,

華爲

image

7月4號 華爲優招

一面:

上來是作自我介紹,以後開始問項目,講項目中的認爲的難點,印象深入的地方。

即時通信IM,BLE藍牙鏈接

針對簡歷繼續問

android消息機制 view分發機制 android性能優化 binder機制 設計模式(包含設計原則)

android相關:

廣播的靜態註冊與動態註冊 廣播的有序與無序 service的如何保持不被殺死 內存泄露(handler 等...)

java:

== 與equals區別 stringBuffer與stringBuilder區別 hashmap的原理

網絡:

post與get區別 http與https區別 網絡錯誤碼

二面

聊人生。。。

拼多多

image

8月31日 拼多多 一面(30分鐘)

  1. 作自我介紹
  2. android佈局說下
  3. android四大組件說下
  4. activity和activity傳輸數據怎麼作
  5. 使用intent傳輸數據對數據有什麼要求
  6. service和activity的區別說下
  7. ANR瞭解麼?如何解決?
  8. 給你一個數組,裏面都是long類型數據,有重複數字有空格,要求去重,空間複雜度O(1)。說下思路
  9. 跨進程通信你說說看有哪些
  10. binder機制說說你知道的
  11. 經常使用的排序算法說下
  12. 自定義View實現,應該注意什麼
  13. View的生命週期—若是activity被重建,那麼view的生命週期怎樣變化
  14. activity橫豎屏切換,對應的view的生命週期
  15. activity橫豎屏切換,activity的生命週期
  16. activity橫豎屏切換,activity必定會調用onDestory方法麼?
  17. 經過在清單文件中進行設置不讓他進行橫豎屏切換的話,activity是如何知道進行了橫豎屏切換
  18. 有什麼想問個人?

9月4號 二面

  1. lambda編程知道麼?
  2. afinal框架?呵呵噠
  3. volley中對cookie的處理?呵呵噠
  4. GC回收算法
  5. http報文 cookie
  6. GC roots有哪些
  7. GC roots 遍歷遞歸
  8. 同步,異步函數函數修飾符修飾符?future
  9. 作8月1號題目:任務調度器

面試體驗:

拼多多一面遠程電話面試,基本上都是基礎中的基礎,沒有什麼壓力。因此很簡單的進入了提早批武漢現場技術終面。技術終面那天先面試的HR,HR很nice。對於技術終面面試官來講,面試體驗到巨差:聽說是數據挖掘和客戶端的leader,而後我面試客戶端方向,我作自我介紹的時候說道14年實習的項目,而後他問我14年用的框架源碼?14年的框架早就淘汰了好麼?我說我能夠講下如今我項目中的網絡庫volley的實現機制,而後他沒搭理我,問我volley這個庫他是如何處理cookie的?我勒個去,有沒有搞錯?volley沒有對cookie進行過處理好吧?源碼都看過作過解析的,而後他不信。。以後拿出我8月一的題目讓我作,任務調度的那個題目,一共是三問,面試官問我有沒有問題,我在他的提醒下改了前兩個題目,第三個題目尚未改就說今天到這結束了,好吧,那就結束吧,我也想結束。。

網易

image

8月28日

網易一面:40分鐘

自我介紹……

1 項目挨個問了下(準備充分,無壓力)

2. volley框架說下

3. 手寫一個生產者消費者

4.手寫fragment生命週期和activity生命週期,並把生命週期一一對應上。

5. 熱修復說下,幾種方式?各自原理?

6. 插件化了解麼?說下,基本原理知道麼?

7 混合開發瞭解麼?

8.A應用如何打開B應用的界面?

9. 安卓性能優化有哪些?

10.recycleView說下

11. activity與fragment交互,如何互傳數據

12. binder說下

13 activityManagerService知道麼?說下

  1. android中的廣播說下,粘性廣播知道麼

網易二面:基本沒問項目,徹底面試官自由發揮。40分鐘

無自我介紹,直接開懟。

  1. popupwindow中是否能夠再建立popupwindow?爲何?
  2. dialog中是否能夠建立子window?爲何?
  3. dialog建立爲何傳入activity的context而不是applicationContext ?
  4. fragement和activity交互方式
  5. fragment可不能夠在構造函數傳遞參數?使用setArgument的原理?
  6. 兩個應用程序A和B,A要用B的登陸信息,怎麼作?
  7. contentprovider是如何保證操做數據庫原子性?
  8. 加載進來的class類是否能夠動態修改?
  9. 熱修復原理有哪些?說下
  10. binder是在jni層怎樣實現的(一次拷貝)?
  11. client使用serviceManager能夠找到對應的service,那麼本身寫的service的話,client是怎樣找到的這個service?
  12. 安卓性能優化你知道有哪些?
  13. 一個後臺任務棧,從上到下 A B C三個activity,內存不足回收。那麼從後臺到前臺打開是哪一個界面?爲何,原理?
  14. 子線程是否能夠更新UI?那爲何安卓要求不能在子線程更新UI?

結束,幾分鐘之後問hr小姐姐:很遺憾……

面試體驗:

一面面試官很nice,基本上問的問題也都答上來了。也樂於聽你說的話。二面面試官上來沒讓自我介紹,拿一個筆開始劃你的簡歷,可是基本上也沒有問過簡歷上的項目。問的問題有些很刁鑽也很深刻。若是在開發過程當中沒有真的去搞懂一些api的話,會很吃虧。感受面試官技術有深度,對於一些項目api中的細節有比較深的認識。有些自負,問問題都聲音小的很。最後都不讓問問題。很nb的樣子

鏈家

image

9月16日 鏈家

1面 40分鐘

  1. 自我介紹
  2. android進程間通信機制
  3. binder詳細講解
  4. 性能優化—-平常開發方向
  5. 啓動優化—虛擬機android5.0以前,android5.0以後、
  6. 另類優化:插件化
  7. 插件化注意要點
  8. 手寫代碼:View類的遍歷打印子view
  9. java中同步鎖有幾種
  10. 單例模式有幾種,寫其中一種
  11. 對稱加密和非對稱加密
  12. https
  13. 代碼執行過程(編輯-編譯—連接—運行)
  14. 從java角度來分析上述過程
  15. 動態連接和靜態連接的區別
  16. 物理地址和虛擬地址的區別

2面 30分鐘

  1. 如今有一個不穩定的網絡,須要傳輸數據,若是保證數據包的準確性?
  2. 先講下TCP是如何作的
  3. 讓本身去實現的話,你會去怎麼作?
  4. 超時重傳缺點有哪些?(效率低下,重複收包,去重)
  5. http的請求報文結構,響應報文結構
  6. 如今有一個服務器已經啓動,而後在客戶端這邊不使用http協議,僅能使用運輸層以及之下的網絡協議的狀況下,寫代碼模擬一個相似http協議鏈接的過程以確保與服務器能ping通(核心:http請求頭)

3 面 HR 15分鐘

  1. 自我介紹
  2. 瞭解安裝過鏈家的app麼?
  3. 你看下ios版本的鏈家app,說出你的見解
  4. 可否來實習
  5. ……

面試體驗:

鏈家一面是一個超級超級漂亮的美眉~有些像賈靜雯。我一開始覺得是hr,,,哈哈,後來上來第一個問題是問我進程間通信機制,其實當時我腦子裏想的是hr問的一些問題,有點腦子轉不過來。二面是一個不是搞android的面試官,人挺好,問了些網絡的事情,個人知識點都知道,可是一直沒怎麼能get到他的點子上..三面hr是一個男的,恩,第一次遇到男HR,聊得還好~整體來講,鏈家面試流程和麪試官都很nice

百度-測試開發

9月19 上午11點 百度測試開發一面 1小時

1. 自我介紹

2. 講一個你最熟悉的項目。

3. 畫一下你的項目流程圖

4. 代碼實現:給兩個鏈表,找到兩個鏈表的最長公共子串,輸出子串和子串長度。

5. 針對你項目中的要素若是你去作測試的話,你怎麼去作

6. 測試你瞭解些什麼

7. 你在項目中都作了些什麼測試?

8. 若是你去作你項目的測試,你會怎樣作

9.你有什麼想問的

下午2點 百度測開 二面 1小時

1.自我介紹

2. 手撕代碼:給一個單鏈表,要求隨機輸出一個節點。要求時間複雜度和空間複雜度足夠低。

3. 對上面更高的要求:只容許遍歷一次。並且要保證各個節點被選中的機率相同

4. 講一個你最熟悉的項目

5. 用你知道的知識若是作測試的話,你會考慮些什麼

6. 對你項目中的幾個要點,若是作自動化測試針對每一個要點你該如何去作?

7. 若是你的app藍牙數據顯示異常,你會從什麼角度考慮?儘量全面。

8. 你有什麼想問的

下午4點 百度測開 三面 1小時

1. 自我介紹

2. 說一下你印象最深的項目

3. 你使用的這種BLE藍牙有什麼好處

4. 一個3升水的桶,一個5升的,如何找到4升的水

5.一個礦泉水瓶,你感受她有什麼用處。

6 .你如何評價你本科還有研究生的學習生活

7. 你感受研究生生活的話,你的亮點在哪裏

8. 你對你的自我評價說下

9. 如今有幾個offer,你會選擇哪個?爲何?

10.你有什麼想問的。

面試體驗:

面試官都比較nice,很會引導人。問題有深度,會挖掘你的測試意識和潛力。就是面試過程有點折騰。。我一面面完了以後從酒店出來坐車回學校,結果立刻就要到學校了,電話通知我立刻回去二面,,無奈。右打的趕過去,結果規定的時間面試我到了,可是面試官房間裏面已經有了一個面試是神馬狀況?仔細一聽原來是霸面的,,好吧。。等了20分鐘開始個人二面。二面結束,面試官說能夠走了。我就離開酒店坐上了地鐵,而後地鐵剛開的那一刻收到了二面面試官電話,讓我回去接着三面,,得令,,又到了下一站坐回來進行三面。。

美團點評

image

9月20號 美團點評 1面 40分鐘

  1. 自我介紹
  2. 手寫代碼:View樹遍歷(有viewGroup和view,打印全部的view還有他們對應的層級)
  3. 在列表裏,如何實現多種不一樣的佈局?有哪些方法
  4. java語言中的如今的一些新特性你知道有哪些
  5. java反射和註解你知道麼?講下
  6. EventBus的原理說下
  7. 如今有一個書籤,書籤有三種類型,如今你須要提供一個功能類,針對於不一樣的需求進行不一樣的書籤選擇,你會如何去實現?
  8. 網盤中有 10 個文件,如今用戶能夠任意拖動這些文件,改變它們的排序,怎麼設計上傳的接口,使用什麼樣的數據結構進行存儲
  9. 你在開發中使用的是哪一種結構框架?有幾種結構框架,介紹下
  10. 日常是如何學習的?
  11. 你有什麼想問的麼?

2面 40分鐘

  1. 自我介紹
  2. 你認爲何樣的代碼是最好的?你會注意些什麼?
  3. 手寫代碼

判斷一個字符串是否爲一個合格的密碼,一個合格的密碼須要知足以下條件:

1. 長度必須大於 6;

2. 首字母必須爲大寫字母

3. 只能包含 'a ~ z' 或 'A ~ Z' 或 '_'或'0~9'

4. 至少有兩種不一樣類型的字符

  1. github帳號有麼?
  2. 使用什麼編譯器進行開發?gradle瞭解麼?關於他的配置文件你簡單介紹下
  3. 設計模式你在平常開發過程當中用到過什麼?有沒有特別印象深入的設計模式
  4. 手寫代碼:有一個相似於exel的列命名規則的字符串,如今給你這樣的一個字符串,須要你給出這個串後面的串是什麼?
  5. 你看過哪些源碼?你在裏面學到了什麼?
  6. 當時爲何選擇volley這個http庫?
  7. 你在項目中開發的話,有什麼很難解決的bug嗎?你是怎樣解決的
  8. 平時你是怎麼學習的?
  9. 你有什麼想問個人?

3面 40分鐘

  1. 自我介紹
  2. 你所在的實驗室叫什麼名字?
  3. 你在實驗室的話,沒有讓你出去實習,那麼平時你是怎樣學習進步的
  4. 大家如今研究生畢業不考慮到高校任職?如今一流大學去當老師都是什麼要求
  5. 本科和研究生對比的話,你感受你的成長或者感悟在哪裏
  6. 本科同窗的畢業去向
  7. 玩遊戲麼?王者榮耀什麼級別?如今不玩了等級不降低?
  8. 如今有幾家offer
  9. 百度的測開崗位你有什麼見解,你對這個崗位滿意麼
  10. concurrent包下的一些類有了解麼?
  11. 畫一下concurrentHashMap的結構和hashMap的結構
  12. 對於concurrentHashMap來講的話,同時兩個線程的put操做會有什麼影響?
  13. 對於concurrentHashMap來講的話,同時兩個線程的put和get操做會有什麼影響?
  14. 你在項目中用過這些類麼?爲何知道他們?
  15. 讀寫鎖你知道麼?說下
  16. 你有什麼想問個人

4面 HR 30分鐘

  1. 自我介紹
  2. …..

面試體驗:

問的一些問題仍是挺開放的,注重你的思路。一些題目仍是有些深度。可是大部分仍是能夠輕鬆搞定。原本由於一些緣由晚去了面試,可是還有面試機會,謝謝幫助過個人那個萌妹紙~~

一下午一口氣面到三面,爽快~三面經理面也是一個爽快人~哈哈,要不是太晚了就直接面試hr了,無奈,只能次日面試hr了。。最後走的時候三個面試官和我說再見,挺舒適~

騰訊

image

9月21號 騰訊一面 30分鐘

  1. 自我介紹
  2. 你的工做經歷太適合咱們這個崗位,你仍是想從事android開發麼?——(應屆生無所謂,知識面要廣,須要多接觸東西,不抗拒新技術,新方向)
  3. 咱們是作前端遊戲的,若是你要是仍是堅持android開發,我能夠考慮給你換面試官,問個人見解-(我仍是想嘗試下目前這個崗位,若是感受我合適的話,我但願接着進行面試,若是感受不能夠,那就麻煩給我換崗吧)
  4. 你作java多長時間了,學習android開發多長時間了?
  5. 一個應用程序,你在開發的過程當中會怎樣去實現代碼架構和項目結構上的安排?
  6. 你平時是怎樣學習android的?
  7. 技術方面看過一些什麼書籍呢?
  8. 你感受作程序開發,以你的經驗看來,你認爲開發過程當中有什麼感悟或者認知?
  9. 學習過其餘語言麼?—(沒有,可是我對個人學習能力是有信心的。語言只是一種工具,我不認爲他是個人一種負擔)
  10. 你的代碼編寫風格是怎樣的?
  11. 用過什麼設計模式?
  12. 你說的這些設計模式中,就單例模式而言,你感受他爲何會有這樣的設計模式?有什麼優勢和缺點?
  13. builder設計模式你感受他解決了什麼問題?
  14. 你如何看待你的職業規劃
  15. 你有什麼想問個人麼?
  16. 面試官怎樣看待非對口方向的應屆生求職?
  17. 假如入職以後,公司是否會給安排業務上的老員工進行幫扶?
  18. 面試官對個人評價?

9月23號 騰訊二面 25分鐘

  1. 自我介紹
  2. 作android多長時間了?
  3. 你對android平時的學習是怎樣進行的
  4. 你項目中的某某點用的是什麼技術
  5. 大家導師下面有多少學生?
  6. 平時你學習的話都看些什麼書
  7. 你入職以後有什麼學習計劃?
  8. 你有什麼優缺點?
  9. 你感受你和其餘同窗們比起來你有什麼優點?有什麼缺點?
  10. 你有什麼想問的麼?

面試體驗:

好吧,聊天到了二面,確實是該掛人的時候了,該說再見了。應該是招夠人了,因此走走過場。恩,還不錯吧,至少沒有遇到過其餘同窗面試官上來懟人的狀況。面試官仍是挺好的,面試體驗蠻好~再見騰訊~

百度外賣

百度外賣 9月20號 一面 40分鐘

  1. 自我介紹
  2. 手寫二分查找
  3. 數據庫的事務屬性
  4. 數據庫的事務隔離級別
  5. 數據庫事務的隔離級別不一樣會致使什麼問題
  6. 如今設計一個搶紅包的功能,如何保證多用戶下的錢數的準確發放(手寫代碼:消費者模型)
  7. 紅包錢數是從數據庫中獲取的,那麼有好多紅包,你如何來保證數據庫的併發性能?(我是作android的,你逗我?表示不會)
  8. 手寫二叉樹深度遍歷算法(深度?我寫了一個前序)
  9. 給你一個函數,這個函數是能得出1-5之間的隨機數的,機率相同。如今求1-7之間隨機函數,你如何作
  10. 有什麼想問個人?

9月23號 二面 30分鐘

  1. 自我介紹
  2. activity生命週期(正常和異常狀況下)
  3. 講一下你知道的service
  4. handler消息機制
  5. android數據存儲有幾種方式,並分別介紹
  6. 內存泄露如何解決和檢測
  7. 數據庫鎖知道麼?(又想往java後臺方面搞...)
  8. 給一個數組,求數組的字串的最大值

9月23號 三面 40分鐘

  1. 自我介紹
  2. android應用用着很卡,你分析下緣由(啓動和運行時,分開去說)
  3. 說下你知道的android性能優化方法
  4. android發生了ANR,如何避免和預防
  5. 內存泄露有哪些?問題如何解決的
  6. 手寫代碼:單鏈表翻轉
  7. 手寫代碼:二叉樹層次遍歷
  8. 手寫代碼:單例模式DCL
  9. DCL單例模式中爲何instance要使用volatile
  10. 你平時是如何學習的,android新技術你知道些什麼
  11. 你有什麼想問的

面試體驗:

百度外賣在武漢地區面試,沒有碰到android客戶端的面試官,都是java面試官客串的(至少我三次面都不是作android的,題目都是從電腦題庫中抽出來的,沒有什麼深度)。不過面試官都很nice~

滴滴

image

9月13號 滴滴一面 1小時(愉快的氛圍中GG)

  1. 設計模式說幾種
  2. int和Integer區別
  3. int類型範圍推導
  4. synchronized的原理
  5. synchronized場景題目(修飾非靜態方法,修飾靜態方法,修飾變量)
  6. static的你對他知道的全部東西說下(JVM類加載,子類父類調用順序,靜態變量,靜態方法,靜態內部類,靜態代碼塊和非靜態代碼塊)
  7. 爲何非靜態內部類有時候會形成內存泄露?
  8. 子類繼承父類,父類中有static類型的方法,子類實現一樣的方法可不能夠(加上static,不加上static)
  9. 計算兩個double數字的差值,你有什麼想法,寫出方法代碼出來。
  10. SQL語句,,,各類SQL語句。。。恩,好吧,android表示不多用到sql...而後不好,,
  11. ANR你知道有什麼
  12. 插件化容器化

以後開始聊天,聊人生,,,面試官人挺好,說一開始作後臺,後來作ios,如今接觸android幾個月。恩,好吧,果真這麼多sql語句不是憑空出來的,哈哈....就掛在了sql上,和滴滴說再見…

搜狐

image

9月8號 搜狐 40分鐘

  1. 面試官很Nice,讓我坐下,而後看我簡歷,期間讓我作自我介紹
  2. 完了以後問我哪一個項目印象最深
  3. 我和他說了下本身徹底作的項目中的BLE藍牙鏈接,說了下過程
  4. 問我傳統的藍牙鏈接和BLE藍牙鏈接有什麼不同的地方,我說了下使用方式上的不一樣,他說更底層的呢?藍牙協議知道麼?答:不知道。我和他說了下以前用的傳統的藍牙,頻率高了耗電特別快。用了BLE的好多了... 我說那就是藍牙模塊的設計問題了,涉及到線路板的c或者c++編程燒板子的過程。他說好吧…
  5. activity的啓動方式的場景問題,很easy
  6. listView和RecycleView有什麼不同的?很詳細的說了下,easy...
  7. gridView的父類是誰?我答不清楚,我說我感受應該直接父類是view,根父類是Object
  8. http請求過程說下,我從域名解析說到tcp握手,包括流量控制,擁塞控制 easy..
  9. https爲何是安全的?easy..對稱加密和非對稱加密
  10. http有幾個方法?post、get、head、delete...等等 easy
  11. http的請求報文段結構,每部分作什麼用的 easy
  12. http狀態碼 301 302 304 303 504 easy
  13. 發送一個20M的圖片,你怎麼作? 這個答得很差…只說了文件轉變爲字節流用post傳輸..
  14. 說下post和get區別 easy
  15. 處理圖片的方式說下 easy 三級緩存 ,內存LRUCache的實現原理等等...easy
  16. 使用線程池加載不少圖片,你會怎麼作,並寫出完整代碼。恩,這個問題,思路很詳細的說了下,他承認,而後讓我寫代碼實現,哎,最近一直在刷算法,以前看過的asyncTask有些忘記了。只寫到一半,直接和麪試官說搞不定了。
  17. 算法:給你一個數組,找到這個數組出現次數最多的那個值出現的次數。我問他給不給輔助空間,他說你隨便,完整寫下來就好。好吧,我就用了hashMap完成了。時間複雜度O(n),空間複雜度O(n)。問我能不能改進,我說若是還讓我用點輔助空間的話,給我一個256的數組就好,他讓我說思路?(恩?難道面試官刷題還沒我刷的6?哈哈),說了下,他承認。。以後我還等着問還有沒有更優化的,結果他說好就這樣吧,還有沒有問個人?
  18. 從面試官的角度來講,感受我技術方面有什麼欠缺? 他說你項目掌握的還不夠深刻,原理的東西搞明白(是說藍牙底層協議?,,,哎,好吧,認了…);而後說了句你面經刷的能夠…我無言以對....

最後有一些資料,是準備面試的知識彙總,數據結構,計算機網絡啥的基本上都有了。嗯,本身收錄、整理和分類的,還請尊重知識產出。

分享給你們的資料包括高級架構技術進階腦圖Android開發面試專題資料,還有高級進階架構資料包括但不限於【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】但願能幫助你們學習提高進階,也節省你們在網上搜索資料的時間來學習,也是能夠分享給身邊好友一塊兒學習的!

資料免費領取方式:關注微信公衆號【Android開發之家】獲取小編爲你們收錄整理的資料

重要的事說三遍,轉發+轉發+轉發,讓更多須要的朋友們均可以看到而且領到資料!

image

image

image
相關文章
相關標籤/搜索