Android面經(jīng):百度騰訊滴滴美團(tuán)頭條網(wǎng)易搜狐華為鏈家小米拼多多

去年秋招面試了一些公司,現(xiàn)在把面經(jīng)和面試體驗(yàn)發(fā)一下,大佬們共同學(xué)習(xí)。

由于水平比較差,所以才獲得幾個(gè)offer(小公司無算):百度,美團(tuán),小米,華為,鏈家,百度外賣(后期獲得頭條,拼多多Offer)

職位都是:android客戶端開發(fā)

小米

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

  1. 講一個(gè)你印象比較深刻的項(xiàng)目
  2. 講一下Volley框架的實(shí)現(xiàn)機(jī)制
  3. BLE藍(lán)牙的使用流程
  4. 設(shè)計(jì)模式你說下
  5. binder機(jī)制應(yīng)用層面上說下
  6. View事件分發(fā)機(jī)制說下
  7. android性能優(yōu)化說下(布局優(yōu)化、內(nèi)存泄露、bitmap壓縮等等..)
  8. eventBus框架是干什么用的,實(shí)現(xiàn)機(jī)制?
  9. ANR和crash遇到過么?怎樣解決
  10. 編寫代碼(給一個(gè)網(wǎng)址,編寫代碼)

輸入一個(gè)n*n的正方形矩陣a,要求填充邏輯代碼,將矩陣a順時(shí)針旋轉(zhuǎn)90度

8月30號(hào) 小米二面(1小時(shí)20分鐘)

  1. 自我介紹
  2. 你做的這幾個(gè)項(xiàng)目挑出一個(gè)來講一下
  3. 步態(tài)分析器這個(gè)項(xiàng)目的話,你感覺核心實(shí)現(xiàn)是什么?
  4. 講一下藍(lán)牙有幾種方式,你用的BLE的藍(lán)牙流程說下
  5. 假如說你的app現(xiàn)在使用了一個(gè)A的第三方庫,那么為了以后可以容易換成B的第三方庫,你會(huì)怎樣去做減少后面的修改難度?
  6. android的多線程你知道多少?介紹下
  7. asyncTask的內(nèi)存泄露你知道么?
  8. 給一個(gè)網(wǎng)頁,手撕代碼

題目:一個(gè)字符串,開始可能有0-N個(gè)空格,然后在這個(gè)串中每個(gè)單詞之間有1-N個(gè)空格,最后的結(jié)束也有N個(gè)空格,現(xiàn)在要求最后的輸出結(jié)果是開始不能有空格,每個(gè)單詞之間只能有一個(gè)空格,最后全部是空格的格式

一、先實(shí)現(xiàn),無要求

二、空間復(fù)雜度要求為O(1),再優(yōu)化

9月20號(hào) 武漢現(xiàn)場(chǎng)面三面 40分鐘

  1. 自我介紹
  2. 講一個(gè)你熟悉的項(xiàng)目
  3. 手寫代碼:一個(gè)數(shù)組中的數(shù)字,有大有小,如何用最少的+1或者-1的操作消除數(shù)組中的數(shù)字差異過大的情況,返回你的操作次數(shù)
  4. intentService了解么?說一下他的用處和原理
  5. intentService和service的區(qū)別
  6. intentService現(xiàn)在要求讓他的任務(wù)可以并行執(zhí)行,你會(huì)怎樣去實(shí)現(xiàn)
  7. asyncTask說下主要的方法
  8. activity銷毀之后,那么asyncTask如果還在執(zhí)行,那么會(huì)造成什么問題
  9. activity的旋轉(zhuǎn)屏幕的生命周期變化
  10. 手寫代碼:一個(gè)單鏈表,每三個(gè)節(jié)點(diǎn)反轉(zhuǎn)一次
  11. 你有什么想問我的么?

面試體驗(yàn):

小米每次面試基本上必備的就是手撕算法,so,一定要做好點(diǎn)準(zhǔn)備,難度都一般,不是難的那種。另外從android的技術(shù)上來說,從我的面試經(jīng)歷來說都是一點(diǎn)即過,面試官?zèng)]有多少深入的挖掘知識(shí)點(diǎn)。面試官都很nice,有些算法上卡著了,會(huì)一步一步的引導(dǎo)你。贊一個(gè)

今日頭條

9月25號(hào) 今日頭條 1面 30分鐘

  1. 自我介紹
  2. 兩個(gè)有序數(shù)組,求這兩個(gè)有序數(shù)組中最大的K個(gè)數(shù)(要求時(shí)間復(fù)雜度空間復(fù)雜度較低)
  3. 對(duì)于棧這個(gè)數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)以下幾個(gè)方法:push,pop,max(要求空間復(fù)雜度較低)

今日頭條 2面 1小時(shí)

  1. 自我介紹
  2. android事件分發(fā)機(jī)制說下
  3. touchSlop,touchDelegate的理解
  4. viewStub,merge、include的理解
  5. java引用級(jí)別
  6. 用過什么第三方庫?(用過eventBus,Volley。知道RxAndroid,okHttp等。。寫過demo)
  7. 用過什么編譯器
  8. 內(nèi)存泄露原因(從JVM開始和他說起)
  9. gcRoot有哪些?
  10. 如何檢測(cè)內(nèi)存泄露,有什么方式
  11. 算法:一個(gè)有序數(shù)組,尋找k值出現(xiàn)的第一個(gè)位置(針對(duì)算法要求最優(yōu))
  12. 算法:每個(gè)人都有工作時(shí)間區(qū)間,現(xiàn)在有N個(gè)人,他們每個(gè)人分別有K個(gè)工作區(qū)間?,F(xiàn)在要找到一個(gè)大家都空閑的時(shí)間段進(jìn)行開會(huì),那么如何來找到這些空閑時(shí)間段?講出思路和時(shí)間復(fù)雜度,空間復(fù)雜度

面試體驗(yàn):

武漢現(xiàn)場(chǎng)面,一面不是android開發(fā)面試官,應(yīng)該是java的,所以就問了算法了。每個(gè)算法不是很難,但是會(huì)讓你寫最優(yōu),只有思路不行,必須要完整寫出來。二面是android面試官,嗯,總的情況的話答下來有80%左右吧。前面都還好,最后我問他問題的時(shí)候我問他對(duì)我評(píng)價(jià)如何,然后他說我對(duì)技術(shù)不熱情,問我是不是跨專業(yè)?我一臉懵逼,,理由如下:你知道目前的新框架為什么還在項(xiàng)目中用舊的框架?你項(xiàng)目中還有用到eclipse的,為什么不用androidstudio?然后我給他說:我選擇框架只選擇針對(duì)我這個(gè)項(xiàng)目合適的框架,并且框架原理相同,我知道了一個(gè)原理了其他的也就是一樣的了。并且我平時(shí)也用過新框架自己搞demo;第二:我進(jìn)入實(shí)驗(yàn)室的時(shí)候就是eclipse的項(xiàng)目,我是接鍋的。后面的我自己搞得項(xiàng)目就用androidstudio了,平時(shí)demo我也是用androidstudio了,有問題么?拿著我的簡(jiǎn)歷然后問我是不是跨專業(yè)?呵呵噠,算您會(huì)挖苦人。。直接告訴他,今天就到這吧,面不起我還可以躲得起。。

百度

8月24日 手機(jī)百度電話一面 34分鐘

  1. 二叉樹的非遞歸實(shí)現(xiàn)(前序、中序、后序)
  2. 給一個(gè)NN的矩陣,找出22矩陣的和的最大值,時(shí)間復(fù)雜度?最優(yōu)?
  3. android藍(lán)牙連接(傳統(tǒng)藍(lán)牙,BLE藍(lán)牙),如何連接?
  4. JVM內(nèi)存分區(qū)(每部分異常會(huì)報(bào)什么錯(cuò)誤?)
  5. JVM垃圾回收算法(詳細(xì)介紹)
  6. JVM垃圾回收器(詳細(xì)介紹)
  7. https連接過程,握手過程
  8. 對(duì)稱加密,非對(duì)稱加密
  9. 三次握手過程
  10. android消息機(jī)制
  11. android事件分發(fā)機(jī)制

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

  1. 講一下你做的這些項(xiàng)目里面哪個(gè)印象最深刻
  2. 你負(fù)責(zé)的這些部分講幾個(gè)你認(rèn)為比較重要的點(diǎn)
  3. Volley框架機(jī)制說下,你能抽取出(學(xué)到)幾個(gè)技術(shù)點(diǎn)?
  4. android性能優(yōu)化說下
  5. binder實(shí)現(xiàn)機(jī)制
  6. AIDL文件的用處,aidl生成的類有什么用?講下這個(gè)類做的事情和原理
  7. 進(jìn)程之間是相互隔離的,那么從A進(jìn)程到B進(jìn)程使用binder進(jìn)行通訊,那么猜想下到底是怎樣做的呢?
  8. View的消息機(jī)制你說下,對(duì)于ViewGroup和View有什么不一樣?
  9. 事件攔截的話,可不可以從子View來進(jìn)行操作?具體思路說下
  10. 考慮一種場(chǎng)景:listView加上一個(gè)header實(shí)現(xiàn)下拉刷新的功能,你要怎樣去實(shí)現(xiàn)?說說思路
  11. 如果這樣的場(chǎng)景下:listView和header屬于不同的view,相互為兄弟View,外部套一個(gè)大的viewGroup,如何進(jìn)行事件分發(fā)?從初始態(tài)到用戶拉下出現(xiàn)header的過程來依次分析
  12. 如果是這樣的場(chǎng)景:listView和header屬于同一個(gè)view層,那么下拉刷新又該如何實(shí)現(xiàn)?事件攔截又該如何去做?
  13. 發(fā)過來一個(gè)網(wǎng)址,手寫代碼

根據(jù)他提的需求,寫代碼(主要就是設(shè)計(jì)模式的使用原則和設(shè)計(jì)模式的使用):基本上涉及的知識(shí)點(diǎn):策略模式,工廠方法模式。之后根據(jù)不同的新需求如何盡可能少的修改原來代碼來實(shí)現(xiàn)新功能。

  1. 對(duì)上一步中的抽象類和接口說下優(yōu)缺點(diǎn)?
  2. 為什么java是要求是只能單一繼承?卻可以實(shí)現(xiàn)多個(gè)接口?說下你的見解
  3. 抽象類屬性中什么場(chǎng)景下是優(yōu)點(diǎn)?什么場(chǎng)景下優(yōu)點(diǎn)又變成了缺點(diǎn)?
  4. 使用接口什么場(chǎng)景下是優(yōu)點(diǎn)?什么場(chǎng)景下優(yōu)點(diǎn)又變成了缺點(diǎn)?

權(quán)利翻轉(zhuǎn):你有什么需要問的么?......

百度三面(50分鐘)

  1. 自我介紹
  2. 能不能立即過來實(shí)習(xí)?
  3. 網(wǎng)絡(luò)分層?7層,5層,4層,具體說下每層干啥
  4. ip是哪一層協(xié)議?
  5. post與get的區(qū)別,get有長(zhǎng)度限制么?
  6. 為什么要使用ip協(xié)議?直接使用mac地址連接不可以么?
  7. 全球這么多廠商,生產(chǎn)的設(shè)備如果有重復(fù)的mac地址,你如何解決這個(gè)問題?網(wǎng)絡(luò)數(shù)據(jù)包傳輸會(huì)有什么問題
  8. 你是網(wǎng)絡(luò)管理員,從英國的一臺(tái)電腦要打開中國的一個(gè)網(wǎng)頁,現(xiàn)在就是連接不上(dns正??梢越馕龅秸_IP),你能考慮到哪些問題?
  9. 你是衡水的手機(jī)號(hào),現(xiàn)在你在湖北,那么北京的手機(jī)號(hào)打你的手機(jī)為什么你可以接到電話?

接著問,你數(shù)據(jù)結(jié)構(gòu)知道吧?

  1. 快排時(shí)間復(fù)雜度是多少?最差?平均?為什么時(shí)間復(fù)雜度是O(N*logN)?怎樣推導(dǎo)出來的?
  2. 你對(duì)app推送有什么了解?如果是你來實(shí)現(xiàn)的話,你能怎么做?
  3. 中國有13億人,對(duì)全國身份證號(hào)進(jìn)行排序,你會(huì)怎樣去做
  4. 你上級(jí)讓你去安排一個(gè)日子來舉辦活動(dòng),要求這一天一定不能是周六或者周日,一定要在周一到周五之間,你如何判斷一年里面有哪些日子是合適的?
  5. 你有什么想問我的?

面試感受:1面基本上完美,很舒服。2面面試官很有深度,并且人超棒,會(huì)引導(dǎo)你去如何解決。3面是經(jīng)理面。我說錯(cuò)了一句話,嗯,導(dǎo)致失敗了吧,其實(shí)三面總的來說打得也算是馬馬虎虎到70%,一句話失誤導(dǎo)致最后失敗了吧。。。郁悶了好多天,,,

華為

7月4號(hào) 華為優(yōu)招

一面:

上來是做自我介紹,之后開始問項(xiàng)目,講項(xiàng)目中的認(rèn)為的難點(diǎn),印象深刻的地方。

即時(shí)通訊IM,BLE藍(lán)牙連接

針對(duì)簡(jiǎn)歷繼續(xù)問

android消息機(jī)制 view分發(fā)機(jī)制 android性能優(yōu)化 binder機(jī)制 設(shè)計(jì)模式(包含設(shè)計(jì)原則)

android相關(guān):

廣播的靜態(tài)注冊(cè)與動(dòng)態(tài)注冊(cè) 廣播的有序與無序 service的如何保持不被殺死 內(nèi)存泄露(handler 等...)

java:

== 與equals區(qū)別 stringBuffer與stringBuilder區(qū)別 hashmap的原理

網(wǎng)絡(luò):

post與get區(qū)別 http與https區(qū)別 網(wǎng)絡(luò)錯(cuò)誤碼

二面

聊人生。。。

拼多多

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

  1. 做自我介紹
  2. android布局說下
  3. android四大組件說下
  4. activity和activity傳輸數(shù)據(jù)怎么做
  5. 使用intent傳輸數(shù)據(jù)對(duì)數(shù)據(jù)有什么要求
  6. service和activity的區(qū)別說下
  7. ANR了解么?如何解決?
  8. 給你一個(gè)數(shù)組,里面都是long類型數(shù)據(jù),有重復(fù)數(shù)字有空格,要求去重,空間復(fù)雜度O(1)。說下思路
  9. 跨進(jìn)程通訊你說說看有哪些
  10. binder機(jī)制說說你知道的
  11. 常用的排序算法說下
  12. 自定義View實(shí)現(xiàn),應(yīng)該注意什么
  13. View的生命周期—如果activity被重建,那么view的生命周期怎樣變化
  14. activity橫豎屏切換,對(duì)應(yīng)的view的生命周期
  15. activity橫豎屏切換,activity的生命周期
  16. activity橫豎屏切換,activity一定會(huì)調(diào)用onDestory方法么?
  17. 通過在清單文件中進(jìn)行設(shè)置不讓他進(jìn)行橫豎屏切換的話,activity是如何知道進(jìn)行了橫豎屏切換
  18. 有什么想問我的?

9月4號(hào) 二面

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

面試體驗(yàn):

拼多多一面遠(yuǎn)程電話面試,基本上都是基礎(chǔ)中的基礎(chǔ),沒有什么壓力。所以很簡(jiǎn)單的進(jìn)入了提前批武漢現(xiàn)場(chǎng)技術(shù)終面。技術(shù)終面那天先面試的HR,HR很nice。對(duì)于技術(shù)終面面試官來說,面試體驗(yàn)到巨差:據(jù)說是數(shù)據(jù)挖掘和客戶端的leader,然后我面試客戶端方向,我做自我介紹的時(shí)候說道14年實(shí)習(xí)的項(xiàng)目,然后他問我14年用的框架源碼?14年的框架早就淘汰了好么?我說我可以講下現(xiàn)在我項(xiàng)目中的網(wǎng)絡(luò)庫volley的實(shí)現(xiàn)機(jī)制,然后他沒搭理我,問我volley這個(gè)庫他是如何處理cookie的?我勒個(gè)去,有沒有搞錯(cuò)?volley沒有對(duì)cookie進(jìn)行過處理好吧?源碼都看過做過解析的,然后他不信。。之后拿出我8月一的題目讓我做,任務(wù)調(diào)度的那個(gè)題目,一共是三問,面試官問我有沒有問題,我在他的提醒下改了前兩個(gè)題目,第三個(gè)題目還沒有改就說今天到這結(jié)束了,好吧,那就結(jié)束吧,我也想結(jié)束。。

網(wǎng)易

8月28日

網(wǎng)易一面:40分鐘

自我介紹……

1 項(xiàng)目挨個(gè)問了下(準(zhǔn)備充分,無壓力)

2. volley框架說下

3. 手寫一個(gè)生產(chǎn)者消費(fèi)者

4.手寫fragment生命周期和activity生命周期,并把生命周期一一對(duì)應(yīng)上。

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

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

7 混合開發(fā)了解么?

8.A應(yīng)用如何打開B應(yīng)用的界面?

9. 安卓性能優(yōu)化有哪些?

10.recycleView說下

11. activity與fragment交互,如何互傳數(shù)據(jù)

12. binder說下

13 activityManagerService知道么?說下

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

網(wǎng)易二面:基本沒問項(xiàng)目,完全面試官自由發(fā)揮。40分鐘

無自我介紹,直接開懟。

  1. popupwindow中是否可以再創(chuàng)建popupwindow?為什么?
  2. dialog中是否可以創(chuàng)建子window?為什么?
  3. dialog創(chuàng)建為什么傳入activity的context而不是applicationContext ?
  4. fragement和activity交互方式
  5. fragment可不可以在構(gòu)造函數(shù)傳遞參數(shù)?使用setArgument的原理?
  6. 兩個(gè)應(yīng)用程序A和B,A要用B的登錄信息,怎么做?
  7. contentprovider是如何保證操作數(shù)據(jù)庫原子性?
  8. 加載進(jìn)來的class類是否可以動(dòng)態(tài)修改?
  9. 熱修復(fù)原理有哪些?說下
  10. binder是在jni層怎樣實(shí)現(xiàn)的(一次拷貝)?
  11. client使用serviceManager可以找到對(duì)應(yīng)的service,那么自己寫的service的話,client是怎樣找到的這個(gè)service?
  12. 安卓性能優(yōu)化你知道有哪些?
  13. 一個(gè)后臺(tái)任務(wù)棧,從上到下 A B C三個(gè)activity,內(nèi)存不足回收。那么從后臺(tái)到前臺(tái)打開是哪個(gè)界面?為什么,原理?
  14. 子線程是否可以更新UI?那為什么安卓要求不能在子線程更新UI?

結(jié)束,幾分鐘以后問hr小姐姐:很遺憾……

面試體驗(yàn):

一面面試官很nice,基本上問的問題也都答上來了。也樂于聽你說的話。二面面試官上來沒讓自我介紹,拿一個(gè)筆開始劃你的簡(jiǎn)歷,但是基本上也沒有問過簡(jiǎn)歷上的項(xiàng)目。問的問題有些很刁鉆也很深入。如果在開發(fā)過程中沒有真的去搞懂一些api的話,會(huì)很吃虧。感覺面試官技術(shù)有深度,對(duì)于一些項(xiàng)目api中的細(xì)節(jié)有比較深的認(rèn)識(shí)。有些自負(fù),問問題都聲音小的很。最后都不讓問問題。很nb的樣子

鏈家

9月16日 鏈家

1面 40分鐘

  1. 自我介紹
  2. android進(jìn)程間通訊機(jī)制
  3. binder詳細(xì)講解
  4. 性能優(yōu)化—-日常開發(fā)方向
  5. 啟動(dòng)優(yōu)化—虛擬機(jī)android5.0之前,android5.0之后、
  6. 另類優(yōu)化:插件化
  7. 插件化注意要點(diǎn)
  8. 手寫代碼:View類的遍歷打印子view
  9. java中同步鎖有幾種
  10. 單例模式有幾種,寫其中一種
  11. 對(duì)稱加密和非對(duì)稱加密
  12. https
  13. 代碼執(zhí)行過程(編輯-編譯—鏈接—運(yùn)行)
  14. 從java角度來分析上述過程
  15. 動(dòng)態(tài)鏈接和靜態(tài)鏈接的區(qū)別
  16. 物理地址和虛擬地址的區(qū)別

2面 30分鐘

  1. 現(xiàn)在有一個(gè)不穩(wěn)定的網(wǎng)絡(luò),需要傳輸數(shù)據(jù),如果保證數(shù)據(jù)包的準(zhǔn)確性?
  2. 先講下TCP是如何做的
  3. 讓自己去實(shí)現(xiàn)的話,你會(huì)去怎么做?
  4. 超時(shí)重傳缺點(diǎn)有哪些?(效率低下,重復(fù)收包,去重)
  5. http的請(qǐng)求報(bào)文結(jié)構(gòu),響應(yīng)報(bào)文結(jié)構(gòu)
  6. 現(xiàn)在有一個(gè)服務(wù)器已經(jīng)啟動(dòng),然后在客戶端這邊不使用http協(xié)議,僅能使用運(yùn)輸層以及之下的網(wǎng)絡(luò)協(xié)議的情況下,寫代碼模擬一個(gè)類似http協(xié)議連接的過程以確保與服務(wù)器能ping通(核心:http請(qǐng)求頭)

3 面 HR 15分鐘

  1. 自我介紹
  2. 了解安裝過鏈家的app么?
  3. 你看下ios版本的鏈家app,說出你的看法
  4. 能否來實(shí)習(xí)
  5. ……

面試體驗(yàn)

鏈家一面是一個(gè)超級(jí)超級(jí)漂亮的美眉有些像賈靜雯。我一開始以為是hr,,,哈哈,后來上來第一個(gè)問題是問我進(jìn)程間通訊機(jī)制,其實(shí)當(dāng)時(shí)我腦子里想的是hr問的一些問題,有點(diǎn)腦子轉(zhuǎn)不過來。二面是一個(gè)不是搞android的面試官,人挺好,問了些網(wǎng)絡(luò)的事情,我的知識(shí)點(diǎn)都知道,但是一直沒怎么能get到他的點(diǎn)子上..三面hr是一個(gè)男的,恩,第一次遇到男HR,聊得還好總體來說,鏈家面試流程和面試官都很nice

百度-測(cè)試開發(fā)

9月19 上午11點(diǎn) 百度測(cè)試開發(fā)一面 1小時(shí)

1. 自我介紹

2. 講一個(gè)你最熟悉的項(xiàng)目。

3. 畫一下你的項(xiàng)目流程圖

4. 代碼實(shí)現(xiàn):給兩個(gè)鏈表,找到兩個(gè)鏈表的最長(zhǎng)公共子串,輸出子串和子串長(zhǎng)度。

5. 針對(duì)你項(xiàng)目中的要素如果你去做測(cè)試的話,你怎么去做

6. 測(cè)試你了解些什么

7. 你在項(xiàng)目中都做了些什么測(cè)試?

8. 如果你去做你項(xiàng)目的測(cè)試,你會(huì)怎樣做

9.你有什么想問的

下午2點(diǎn) 百度測(cè)開 二面 1小時(shí)

1.自我介紹

2. 手撕代碼:給一個(gè)單鏈表,要求隨機(jī)輸出一個(gè)節(jié)點(diǎn)。要求時(shí)間復(fù)雜度和空間復(fù)雜度足夠低。

3. 對(duì)上面更高的要求:只允許遍歷一次。而且要保證各個(gè)節(jié)點(diǎn)被選中的概率相同

4. 講一個(gè)你最熟悉的項(xiàng)目

5. 用你知道的知識(shí)如果做測(cè)試的話,你會(huì)考慮些什么

6. 對(duì)你項(xiàng)目中的幾個(gè)要點(diǎn),如果做自動(dòng)化測(cè)試針對(duì)每個(gè)要點(diǎn)你該如何去做?

7. 如果你的app藍(lán)牙數(shù)據(jù)顯示異常,你會(huì)從什么角度考慮?盡可能全面。

8. 你有什么想問的

下午4點(diǎn) 百度測(cè)開 三面 1小時(shí)

1. 自我介紹

2. 說一下你印象最深的項(xiàng)目

3. 你使用的這種BLE藍(lán)牙有什么好處

4. 一個(gè)3升水的桶,一個(gè)5升的,如何找到4升的水

5.一個(gè)礦泉水瓶,你感覺她有什么用處。

6 .你如何評(píng)價(jià)你本科還有研究生的學(xué)習(xí)生活

7. 你感覺研究生生活的話,你的亮點(diǎn)在哪里

8. 你對(duì)你的自我評(píng)價(jià)說下

9. 現(xiàn)在有幾個(gè)offer,你會(huì)選擇哪一個(gè)?為什么?

10.你有什么想問的。

面試體驗(yàn):

面試官都比較nice,很會(huì)引導(dǎo)人。問題有深度,會(huì)挖掘你的測(cè)試意識(shí)和潛力。就是面試過程有點(diǎn)折騰。。我一面面完了之后從酒店出來坐車回學(xué)校,結(jié)果馬上就要到學(xué)校了,電話通知我馬上回去二面,,無奈。右打的趕過去,結(jié)果規(guī)定的時(shí)間面試我到了,但是面試官房間里面已經(jīng)有了一個(gè)面試是神馬情況?仔細(xì)一聽原來是霸面的,,好吧。。等了20分鐘開始我的二面。二面結(jié)束,面試官說可以走了。我就離開酒店坐上了地鐵,然后地鐵剛開的那一刻收到了二面面試官電話,讓我回去接著三面,,得令,,又到了下一站坐回來進(jìn)行三面。。

美團(tuán)點(diǎn)評(píng)

9月20號(hào) 美團(tuán)點(diǎn)評(píng) 1面 40分鐘

  1. 自我介紹
  2. 手寫代碼:View樹遍歷(有viewGroup和view,打印所有的view還有他們對(duì)應(yīng)的層級(jí))
  3. 在列表里,如何實(shí)現(xiàn)多種不同的布局?有哪些方法
  4. java語言中的現(xiàn)在的一些新特性你知道有哪些
  5. java反射和注解你知道么?講下
  6. EventBus的原理說下
  7. 現(xiàn)在有一個(gè)書簽,書簽有三種類型,現(xiàn)在你需要提供一個(gè)功能類,針對(duì)于不同的需求進(jìn)行不同的書簽選擇,你會(huì)如何去實(shí)現(xiàn)?
  8. 網(wǎng)盤中有 10 個(gè)文件,現(xiàn)在用戶可以任意拖動(dòng)這些文件,改變它們的排序,怎么設(shè)計(jì)上傳的接口,使用什么樣的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)
  9. 你在開發(fā)中使用的是哪種結(jié)構(gòu)框架?有幾種結(jié)構(gòu)框架,介紹下
  10. 平常是如何學(xué)習(xí)的?
  11. 你有什么想問的么?

2面 40分鐘

  1. 自我介紹
  2. 你認(rèn)為什么樣的代碼是最好的?你會(huì)注意些什么?
  3. 手寫代碼

判斷一個(gè)字符串是否為一個(gè)合格的密碼,一個(gè)合格的密碼需要滿足如下條件:

1. 長(zhǎng)度必須大于 6;

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

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

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

  1. github賬號(hào)有么?
  2. 使用什么編譯器進(jìn)行開發(fā)?gradle了解么?關(guān)于他的配置文件你簡(jiǎn)單介紹下
  3. 設(shè)計(jì)模式你在日常開發(fā)過程中用到過什么?有沒有特別印象深刻的設(shè)計(jì)模式
  4. 手寫代碼:有一個(gè)類似于exel的列命名規(guī)則的字符串,現(xiàn)在給你這樣的一個(gè)字符串,需要你給出這個(gè)串后面的串是什么?
  5. 你看過哪些源碼?你在里面學(xué)到了什么?
  6. 當(dāng)時(shí)為什么選擇volley這個(gè)http庫?
  7. 你在項(xiàng)目中開發(fā)的話,有什么很難解決的bug嗎?你是怎樣解決的
  8. 平時(shí)你是怎么學(xué)習(xí)的?
  9. 你有什么想問我的?

3面 40分鐘

  1. 自我介紹
  2. 你所在的實(shí)驗(yàn)室叫什么名字?
  3. 你在實(shí)驗(yàn)室的話,沒有讓你出去實(shí)習(xí),那么平時(shí)你是怎樣學(xué)習(xí)進(jìn)步的
  4. 你們現(xiàn)在研究生畢業(yè)不考慮到高校任職?現(xiàn)在一流大學(xué)去當(dāng)老師都是什么要求
  5. 本科和研究生對(duì)比的話,你感覺你的成長(zhǎng)或者感悟在哪里
  6. 本科同學(xué)的畢業(yè)去向
  7. 玩游戲么?王者榮耀什么級(jí)別?現(xiàn)在不玩了等級(jí)不下降?
  8. 現(xiàn)在有幾家offer
  9. 百度的測(cè)開崗位你有什么看法,你對(duì)這個(gè)崗位滿意么
  10. concurrent包下的一些類有了解么?
  11. 畫一下concurrentHashMap的結(jié)構(gòu)和hashMap的結(jié)構(gòu)
  12. 對(duì)于concurrentHashMap來說的話,同時(shí)兩個(gè)線程的put操作會(huì)有什么影響?
  13. 對(duì)于concurrentHashMap來說的話,同時(shí)兩個(gè)線程的put和get操作會(huì)有什么影響?
  14. 你在項(xiàng)目中用過這些類么?為什么知道他們?
  15. 讀寫鎖你知道么?說下
  16. 你有什么想問我的

4面 HR 30分鐘

  1. 自我介紹
  2. …..

面試體驗(yàn):

問的一些問題還是挺開放的,注重你的思路。一些題目還是有些深度。但是大部分還是可以輕松搞定。本來因?yàn)橐恍┰蛲砣チ嗣嬖?,但是還有面試機(jī)會(huì),謝謝幫助過我的那個(gè)萌妹紙~~

一下午一口氣面到三面,爽快三面經(jīng)理面也是一個(gè)爽快人哈哈,要不是太晚了就直接面試hr了,無奈,只能第二天面試hr了。。最后走的時(shí)候三個(gè)面試官和我說再見,挺溫馨~

騰訊

9月21號(hào) 騰訊一面 30分鐘

  1. 自我介紹
  2. 你的工作經(jīng)歷太適合我們這個(gè)崗位,你還是想從事android開發(fā)么?——(應(yīng)屆生無所謂,知識(shí)面要廣,需要多接觸東西,不抗拒新技術(shù),新方向)
  3. 我們是做前端游戲的,如果你要是還是堅(jiān)持android開發(fā),我可以考慮給你換面試官,問我的看法-(我還是想嘗試下目前這個(gè)崗位,如果感覺我合適的話,我希望接著進(jìn)行面試,如果感覺不可以,那就麻煩給我換崗吧)
  4. 你做java多長(zhǎng)時(shí)間了,學(xué)習(xí)android開發(fā)多長(zhǎng)時(shí)間了?
  5. 一個(gè)應(yīng)用程序,你在開發(fā)的過程中會(huì)怎樣去實(shí)現(xiàn)代碼架構(gòu)和項(xiàng)目結(jié)構(gòu)上的安排?
  6. 你平時(shí)是怎樣學(xué)習(xí)android的?
  7. 技術(shù)方面看過一些什么書籍呢?
  8. 你感覺做程序開發(fā),以你的經(jīng)驗(yàn)看來,你認(rèn)為開發(fā)過程中有什么感悟或者認(rèn)知?
  9. 學(xué)習(xí)過其他語言么?—(沒有,但是我對(duì)我的學(xué)習(xí)能力是有信心的。語言只是一種工具,我不認(rèn)為他是我的一種負(fù)擔(dān))
  10. 你的代碼編寫風(fēng)格是怎樣的?
  11. 用過什么設(shè)計(jì)模式?
  12. 你說的這些設(shè)計(jì)模式中,就單例模式而言,你感覺他為什么會(huì)有這樣的設(shè)計(jì)模式?有什么優(yōu)點(diǎn)和缺點(diǎn)?
  13. builder設(shè)計(jì)模式你感覺他解決了什么問題?
  14. 你如何看待你的職業(yè)規(guī)劃
  15. 你有什么想問我的么?
  16. 面試官怎樣看待非對(duì)口方向的應(yīng)屆生求職?
  17. 假如入職之后,公司是否會(huì)給安排業(yè)務(wù)上的老員工進(jìn)行幫扶?
  18. 面試官對(duì)我的評(píng)價(jià)?

9月23號(hào) 騰訊二面 25分鐘

  1. 自我介紹
  2. 做android多長(zhǎng)時(shí)間了?
  3. 你對(duì)android平時(shí)的學(xué)習(xí)是怎樣進(jìn)行的
  4. 你項(xiàng)目中的某某點(diǎn)用的是什么技術(shù)
  5. 你們導(dǎo)師下面有多少學(xué)生?
  6. 平時(shí)你學(xué)習(xí)的話都看些什么書
  7. 你入職之后有什么學(xué)習(xí)計(jì)劃?
  8. 你有什么優(yōu)缺點(diǎn)?
  9. 你感覺你和其他同學(xué)們比起來你有什么優(yōu)勢(shì)?有什么缺點(diǎn)?
  10. 你有什么想問的么?

面試體驗(yàn):

好吧,聊天到了二面,確實(shí)是該掛人的時(shí)候了,該說再見了。應(yīng)該是招夠人了,所以走走過場(chǎng)。恩,還不錯(cuò)吧,至少?zèng)]有遇到過其他同學(xué)面試官上來懟人的情況。面試官還是挺好的,面試體驗(yàn)蠻好再見騰訊

百度外賣

百度外賣 9月20號(hào) 一面 40分鐘

  1. 自我介紹
  2. 手寫二分查找
  3. 數(shù)據(jù)庫的事務(wù)屬性
  4. 數(shù)據(jù)庫的事務(wù)隔離級(jí)別
  5. 數(shù)據(jù)庫事務(wù)的隔離級(jí)別不同會(huì)導(dǎo)致什么問題
  6. 現(xiàn)在設(shè)計(jì)一個(gè)搶紅包的功能,如何保證多用戶下的錢數(shù)的準(zhǔn)確發(fā)放(手寫代碼:消費(fèi)者模型)
  7. 紅包錢數(shù)是從數(shù)據(jù)庫中獲取的,那么有好多紅包,你如何來保證數(shù)據(jù)庫的并發(fā)性能?(我是做android的,你逗我?表示不會(huì))
  8. 手寫二叉樹深度遍歷算法(深度?我寫了一個(gè)前序)
  9. 給你一個(gè)函數(shù),這個(gè)函數(shù)是能得出1-5之間的隨機(jī)數(shù)的,概率相同。現(xiàn)在求1-7之間隨機(jī)函數(shù),你如何做
  10. 有什么想問我的?

9月23號(hào) 二面 30分鐘

  1. 自我介紹
  2. activity生命周期(正常和異常情況下)
  3. 講一下你知道的service
  4. handler消息機(jī)制
  5. android數(shù)據(jù)存儲(chǔ)有幾種方式,并分別介紹
  6. 內(nèi)存泄露如何解決和檢測(cè)
  7. 數(shù)據(jù)庫鎖知道么?(又想往java后臺(tái)方面搞...)
  8. 給一個(gè)數(shù)組,求數(shù)組的字串的最大值

9月23號(hào) 三面 40分鐘

  1. 自我介紹
  2. android應(yīng)用用著很卡,你分析下原因(啟動(dòng)和運(yùn)行時(shí),分開去說)
  3. 說下你知道的android性能優(yōu)化方法
  4. android發(fā)生了ANR,如何避免和預(yù)防
  5. 內(nèi)存泄露有哪些?問題如何解決的
  6. 手寫代碼:?jiǎn)捂湵矸D(zhuǎn)
  7. 手寫代碼:二叉樹層次遍歷
  8. 手寫代碼:?jiǎn)卫J紻CL
  9. DCL單例模式中為什么instance要使用volatile
  10. 你平時(shí)是如何學(xué)習(xí)的,android新技術(shù)你知道些什么
  11. 你有什么想問的

面試體驗(yàn):

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

滴滴

9月13號(hào) 滴滴一面 1小時(shí)(愉快的氛圍中GG)

  1. 設(shè)計(jì)模式說幾種
  2. int和Integer區(qū)別
  3. int類型范圍推導(dǎo)
  4. synchronized的原理
  5. synchronized場(chǎng)景題目(修飾非靜態(tài)方法,修飾靜態(tài)方法,修飾變量)
  6. static的你對(duì)他知道的所有東西說下(JVM類加載,子類父類調(diào)用順序,靜態(tài)變量,靜態(tài)方法,靜態(tài)內(nèi)部類,靜態(tài)代碼塊和非靜態(tài)代碼塊)
  7. 為什么非靜態(tài)內(nèi)部類有時(shí)候會(huì)造成內(nèi)存泄露?
  8. 子類繼承父類,父類中有static類型的方法,子類實(shí)現(xiàn)同樣的方法可不可以(加上static,不加上static)
  9. 計(jì)算兩個(gè)double數(shù)字的差值,你有什么想法,寫出方法代碼出來。
  10. SQL語句,,,各種SQL語句。。。恩,好吧,android表示很少用到sql...然后很差,,
  11. ANR你知道有什么
  12. 插件化容器化

之后開始聊天,聊人生,,,面試官人挺好,說一開始做后臺(tái),后來做ios,現(xiàn)在接觸android幾個(gè)月。恩,好吧,果然這么多sql語句不是憑空出來的,哈哈....就掛在了sql上,和滴滴說再見…

搜狐

9月8號(hào) 搜狐 40分鐘

  1. 面試官很Nice,讓我坐下,然后看我簡(jiǎn)歷,期間讓我做自我介紹
  2. 完了之后問我哪個(gè)項(xiàng)目印象最深
  3. 我和他說了下自己完全做的項(xiàng)目中的BLE藍(lán)牙連接,說了下過程
  4. 問我傳統(tǒng)的藍(lán)牙連接和BLE藍(lán)牙連接有什么不一樣的地方,我說了下使用方式上的不同,他說更底層的呢?藍(lán)牙協(xié)議知道么?答:不知道。我和他說了下之前用的傳統(tǒng)的藍(lán)牙,頻率高了耗電特別快。用了BLE的好多了... 我說那就是藍(lán)牙模塊的設(shè)計(jì)問題了,涉及到線路板的c或者c++編程燒板子的過程。他說好吧…
  5. activity的啟動(dòng)方式的場(chǎng)景問題,很easy
  6. listView和RecycleView有什么不一樣的?很詳細(xì)的說了下,easy...
  7. gridView的父類是誰?我答不清楚,我說我感覺應(yīng)該直接父類是view,根父類是Object
  8. http請(qǐng)求過程說下,我從域名解析說到tcp握手,包括流量控制,擁塞控制 easy..
  9. https為什么是安全的?easy..對(duì)稱加密和非對(duì)稱加密
  10. http有幾個(gè)方法?post、get、head、delete...等等 easy
  11. http的請(qǐng)求報(bào)文段結(jié)構(gòu),每部分做什么用的 easy
  12. http狀態(tài)碼 301 302 304 303 504 easy
  13. 發(fā)送一個(gè)20M的圖片,你怎么做? 這個(gè)答得不好…只說了文件轉(zhuǎn)變?yōu)樽止?jié)流用post傳輸..
  14. 說下post和get區(qū)別 easy
  15. 處理圖片的方式說下 easy 三級(jí)緩存 ,內(nèi)存LRUCache的實(shí)現(xiàn)原理等等...easy
  16. 使用線程池加載很多圖片,你會(huì)怎么做,并寫出完整代碼。恩,這個(gè)問題,思路很詳細(xì)的說了下,他認(rèn)可,然后讓我寫代碼實(shí)現(xiàn),哎,最近一直在刷算法,之前看過的asyncTask有些忘記了。只寫到一半,直接和面試官說搞不定了。
  17. 算法:給你一個(gè)數(shù)組,找到這個(gè)數(shù)組出現(xiàn)次數(shù)最多的那個(gè)值出現(xiàn)的次數(shù)。我問他給不給輔助空間,他說你隨便,完整寫下來就好。好吧,我就用了hashMap完成了。時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)。問我能不能改進(jìn),我說如果還讓我用點(diǎn)輔助空間的話,給我一個(gè)256的數(shù)組就好,他讓我說思路?(恩?難道面試官刷題還沒我刷的6?哈哈),說了下,他認(rèn)可。。之后我還等著問還有沒有更優(yōu)化的,結(jié)果他說好就這樣吧,還有沒有問我的?
  18. 從面試官的角度來說,感覺我技術(shù)方面有什么欠缺? 他說你項(xiàng)目掌握的還不夠深入,原理的東西搞明白(是說藍(lán)牙底層協(xié)議?,,,哎,好吧,認(rèn)了…);然后說了句你面經(jīng)刷的可以…我無言以對(duì)....

最后

給大家分享一份移動(dòng)架構(gòu)大綱,包含了移動(dòng)架構(gòu)師需要掌握的所有的技術(shù)體系,大家可以對(duì)比一下自己不足或者欠缺的地方有方向的去學(xué)習(xí)提升;

需要高清架構(gòu)圖以及圖中視頻資料和文章項(xiàng)目源碼的可以加入我的技術(shù)交流群:825106898私聊群主小姐姐免費(fèi)獲取

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容