2020 Android常見面試題

個(gè)人收集皆疹,平沉彰ǎ看到一些就放進(jìn)來

Android:

  1. 前臺(tái)切換到后臺(tái)侧到,然后再回到前臺(tái)勃教,Activity生命周期回調(diào)方法。彈出Dialog匠抗,生命值周期回調(diào)方法故源。

  2. Activity的生命周期和啟動(dòng)模式
    activity啟動(dòng)模式

  3. ANR的原因
    ANR 出現(xiàn)的場(chǎng)景以及解決方案

  4. 四大組件

  5. Service的開啟方式

  6. Activity與Service通信的方式

  7. Activity之間的通信方式

  8. ListView的優(yōu)化

  9. RecycleView的使用,原理汞贸,RecycleView優(yōu)化

  10. RecyclerView怎么實(shí)現(xiàn)的item緩存绳军,跟ListView有什么區(qū)別

  11. 進(jìn)程和線程的概念,Android里怎樣實(shí)現(xiàn)多線程著蛙?

  12. App啟動(dòng)崩潰異常捕捉

  13. 事件傳遞機(jī)制的介紹

  14. Handler的原理和使用 Handler是怎么和線程綁定的
    Handler的線程切換與事件分發(fā)

  15. 為什么Looper.loop()要設(shè)計(jì)成死循環(huán)

  16. 手寫生產(chǎn)者/消費(fèi)者模式

  17. 手寫雙檢查單例模式删铃,各個(gè)步驟有什么區(qū)別

  18. HashMap和HashTable區(qū)別,HashMap原理和實(shí)現(xiàn)踏堡,hash()的算法

  19. Android的IPC機(jī)制(Binder)

  20. 什么是內(nèi)存泄漏猎唁,Android里有哪些內(nèi)存泄漏的場(chǎng)景,原因是什么

  21. 怎么實(shí)現(xiàn)LRU緩存
    LRU緩存機(jī)制

  1. 怎么解決用戶高頻點(diǎn)擊打開新Activity導(dǎo)致的多實(shí)例問題(Activity啟動(dòng)模式)

算法:

1.二叉樹顷蟆,給出根節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)诫隅,找出從根節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路徑

  1. 一個(gè)無序,不重復(fù)數(shù)組帐偎,輸出N個(gè)元素逐纬,使得N個(gè)元素的和相加為M,給出時(shí)間復(fù)雜度削樊、空間復(fù)雜度豁生。手寫算法
  2. 數(shù)據(jù)結(jié)構(gòu)中堆的概念,堆排序
  3. 如何用兩個(gè)隊(duì)列(FIFO)實(shí)現(xiàn)棧(FILO)
  4. 了解常見排序算法嗎漫贞,手寫一下快排
  5. 怎么判斷兩個(gè)無環(huán)單鏈表是否相交
  6. 算法題甸箱,反轉(zhuǎn)數(shù)組
  7. 算法題,鏈表求和
  8. 算法,刪除數(shù)組中的重復(fù)元素

JAVA:

  1. 死鎖的概念迅脐,怎么避免死鎖

  2. ReentrantLock的內(nèi)部實(shí)現(xiàn)

3.synchronized跟ReentranLock有什么區(qū)別芍殖?

4.synchronized與ReentranLock發(fā)生異常的場(chǎng)景.

  1. ReentrantLock 、synchronized和volatile
    關(guān)于volatile與synchronized

  2. 集合的接口和具體實(shí)現(xiàn)類谴蔑,介紹

  3. TreeMap具體實(shí)現(xiàn)

  4. 邏輯地址與物理地址豌骏,為什么使用邏輯地址

  5. Java的幾種內(nèi)部類,區(qū)別是什么

  6. String的hashCode()和Object的hashCode()

  7. Java里泛型的實(shí)現(xiàn)

  8. Java里加鎖的方式隐锭,synchornized關(guān)鍵字的原理窃躲,悲觀鎖和樂觀鎖都有哪些實(shí)現(xiàn)

  9. 死鎖的條件和解決方法,講講銀行家算法

  10. 泛型钦睡、泛型擦除蒂窒、通配符相關(guān)的東西

  11. final、finally、finalize 的區(qū)別

  12. 接口刘绣、抽象類的區(qū)別

  13. Java 四大引用

  14. StringBuilder

  15. Exception 和 Error

  16. IO 樱溉、 NIO、 OKIO

  17. ArrayList纬凤、LinkedList

  18. HashMap 福贞、HashTable、HashSet

  19. string,equals,==有什么區(qū)別

JVM

  1. 內(nèi)存區(qū)域
  2. 內(nèi)存模型
  3. 內(nèi)存分配回收策略
  4. Java 對(duì)象的創(chuàng)建停士、內(nèi)存布局和訪問定位
  5. GC過程挖帘,GC的算法都有哪些
    垃圾收集算法
  6. 類加載機(jī)制
  7. 類加雙親委派模型機(jī)制
  8. 編譯器優(yōu)化
  9. 方法內(nèi)聯(lián)
  10. JVM 內(nèi)存結(jié)構(gòu)
  11. JVM 是如何執(zhí)行方法調(diào)用的?
  12. JVM 是如何實(shí)現(xiàn)反射的恋技?
  13. JVM 是如何實(shí)現(xiàn)泛型的拇舀?
  14. JVM 是如何實(shí)現(xiàn)異常的?
  15. JVM 是如何實(shí)現(xiàn)注解的蜻底?
  16. 逃逸分析
  17. 虛擬內(nèi)存和物理內(nèi)存的概念和關(guān)系骄崩,內(nèi)存分頁的調(diào)度算法

架構(gòu)與三方庫:

  1. 模式MVP,MVC介紹

  2. RxJava的功能與原理實(shí)現(xiàn)

  3. 用到的一些開源框架薄辅,介紹一個(gè)看過源碼的要拂,內(nèi)部實(shí)現(xiàn)過程。

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

  1. TCP的三次握手四次揮手站楚,為什么要四次揮手
  2. TCP的流量控制算法(滑動(dòng)窗口)脱惰,擁塞控制算法
    tcp的擁塞控制和流量控制
  3. HTTP1.0與2.0的區(qū)別 HTTPS 和 HTTP 的區(qū)別,HTTPS 2.0 3.0窿春?
  4. 網(wǎng)絡(luò)框架對(duì)比和源碼分析
  5. 自己去設(shè)計(jì)網(wǎng)絡(luò)請(qǐng)求框架拉一,怎么做?
  6. 網(wǎng)絡(luò)請(qǐng)求緩存處理旧乞,okhttp如何處理網(wǎng)絡(luò)緩存的
  7. 從網(wǎng)絡(luò)加載一個(gè)10M的圖片蔚润,說下注意事項(xiàng)
  8. TCP與UDP的區(qū)別
  9. TCP與UDP的應(yīng)用
  10. HTTP協(xié)議
  11. HTTP報(bào)文結(jié)構(gòu)
  1. 項(xiàng)目中的Webview與native通信

  2. 項(xiàng)目中對(duì)WebView的功能進(jìn)行了怎樣的增強(qiáng)

  1. Activity生命周期

  2. AsyncTask內(nèi)存泄露

  3. dispatchTouchEvent,onInterceptEvent,onTouchEvent順序,關(guān)系

  4. onMeasure,onLayout,onDraw關(guān)系

  5. 說說你對(duì)協(xié)程的理解

  6. 協(xié)程怎么取消

  7. 說說MVP與MVVM的區(qū)別

快手二面
1.算法題良蛮,二叉樹的最大深度

2.如果android端和IOS端調(diào)一個(gè)接口抽碌,一個(gè)通了一個(gè)沒通悍赢,你會(huì)如何解決

3.如果android端和IOS端調(diào)一個(gè)接口决瞳,一個(gè)比較慢,一個(gè)比較快左权,有什么思路

4.ARouter的原理是什么皮胡?如果不用ARouter,你會(huì)怎么去解藕赏迟。接口屡贺?設(shè)計(jì)接口有什么需要注意的?

5.h5與native交互做過什么工作?

6.登陸功能甩栈,登陸成功然后跳轉(zhuǎn)到一個(gè)新Activity泻仙,中間涉及什么?從事件傳遞量没,網(wǎng)絡(luò)請(qǐng)求,AMS交互角度分析

7.AMS交互調(diào)用生命周期是順序的嗎玉转?

8.binder進(jìn)程間通信可以調(diào)用原進(jìn)程方法嗎?

9.mvp與mvvm有什么區(qū)別殴蹄?

10.token放在本地如何保存究抓?如何加密比較好?

快手三面
1.viewModel的原理袭灯,為什么可以在Activity銷毀后保存數(shù)據(jù)

2.mvvm雙向數(shù)據(jù)綁定的原理是怎樣的刺下?ViewModel

3.說說你們項(xiàng)目中的難點(diǎn)是怎樣的?

4.偽代碼實(shí)現(xiàn)一個(gè)長(zhǎng)按事件

5.實(shí)現(xiàn)一個(gè)下載功能的接口

1.你們的項(xiàng)目中有什么難點(diǎn)稽荧?

2.你們項(xiàng)目的穩(wěn)定性如何橘茉?有做過什么穩(wěn)定性優(yōu)化的工作?

3.WebView性能優(yōu)化做過什么工作姨丈?

4.AIDL in out oneWay代表什么意思捺癞?

5.線程池了解多少?拒絕策略有幾種,為什么有newSingleThread

6.跨進(jìn)程通信了解多少构挤?管道了解嗎髓介?

7.協(xié)程介紹一下,講一個(gè)協(xié)程的scope與context筋现,協(xié)程的+號(hào)代表什么

8.Handler休眠是怎樣的唐础?epoll的原理是什么?如何實(shí)現(xiàn)延時(shí)消息矾飞,如果移除一個(gè)延時(shí)消息會(huì)解除休眠嗎一膨?

9.算法斐波那契臺(tái)階

10.手寫生產(chǎn)者消息者模型

11.IdleHandler應(yīng)用場(chǎng)景

字節(jié)跳動(dòng)2面
1.自定義圓角圖片

2.自定義LinearLayout,怎么測(cè)量子View寬高

3.setFactory和setFactory2有什么區(qū)別洒沦?

4.插件化換膚方案

5.插件化的原理豹绪,startActivity hook了哪個(gè)方法

6.手勢(shì)操作ActionCancel后怎么取消

7.怎么優(yōu)化xml inflate的時(shí)間,涉及IO與反射申眼。了解compose嗎瞒津?

8.算法題:二叉樹的每一層最左邊節(jié)點(diǎn)

9.RecyclerView 緩存結(jié)構(gòu),RecyclerView預(yù)取括尸,RecyclerView局部刷新

11.setOnTouchListener,onClickeListener和onTouchEvent的關(guān)系

  1. 線程池怎么實(shí)現(xiàn)巷蚪,阻塞隊(duì)列原理?

Fragment初始化參數(shù)調(diào)用哪個(gè)方法濒翻?

Fragment懶加載怎么實(shí)現(xiàn)屁柏?

java8對(duì)hashmap的優(yōu)化

hashmap和hashset區(qū)別啦膜,hash怎么散列的

HashMap的哈希散列實(shí)現(xiàn),線程安全嗎淌喻,為什么僧家?

OkHttp原理,怎么把參數(shù)組裝的

1.啟動(dòng) app 黑白屏優(yōu)化

2.穩(wěn)定——內(nèi)存優(yōu)化

3.流暢——卡頓優(yōu)化

4.節(jié)省——耗電優(yōu)化

5.安裝包——APK 瘦身

6.冷啟動(dòng)與熱啟動(dòng)

7.內(nèi)存泄漏的場(chǎng)景和解決辦法

9.webview 優(yōu)化

10.如何避免 OOM?

1.Android 系統(tǒng)架構(gòu)

2.View 的事件分發(fā)機(jī)制裸删?滑動(dòng)沖突怎么解決啸臀?

3.View 的繪制流程?

4.跨進(jìn)程通信

5.Android 系統(tǒng)啟動(dòng)流程是什么烁落?

6.啟動(dòng)一個(gè)程序乘粒,可以主界面點(diǎn)擊圖標(biāo)進(jìn)入,也可 以從一個(gè)程序中 跳轉(zhuǎn)過去伤塌,二者有什么區(qū)別灯萍?

7.AMS家族重要術(shù)語解釋

1.網(wǎng)絡(luò)底層框架:OkHttp 實(shí)現(xiàn)原理

2.網(wǎng)絡(luò)封裝框架:Retrofifit 實(shí)現(xiàn)原理

3.響應(yīng)式編程框架:RxJava 實(shí)現(xiàn)原理

4.圖片加載框架:Glide 實(shí)現(xiàn)原理

5.事件總線框架:EventBus 實(shí)現(xiàn)原理

6.內(nèi)存泄漏檢測(cè)框架:LeakCanary 實(shí)現(xiàn)原理

7.依賴注入框架:ButterKnife 實(shí)現(xiàn)原理

8.依賴全局管理框架:Dagger2 實(shí)現(xiàn)原理

9.數(shù)據(jù)庫框架:GreenDao 實(shí)現(xiàn)原理

1.從原理分析Kotlin的延遲初始化: lateinit var和by lazy

2.使用Kotlin Reified 讓泛型更簡(jiǎn)單安全

3.Kotlin里的Extension Functions實(shí)現(xiàn)原理分析

4.Kotlin系列之頂層函數(shù)和屬性

5.Kotlin 兼容 Java 遇到的最大的 “坑”

6.Kotlin 的協(xié)程用力瞥一眼

7.Kotlin 協(xié)程「掛起」的本質(zhì)

8.到底什么是「非阻塞式」掛起?協(xié)程真的更輕量級(jí)嗎每聪?

9.資源混淆是如何影響到Kotlin協(xié)程的

10.Kotlin Coroutines(協(xié)程) 完全解析

11.破解 Kotlin 協(xié)程

1.談?wù)勀銓?duì)Android設(shè)計(jì)模式的理解

2.MVC MVP MVVM原理和區(qū)別

3.你所知道的設(shè)計(jì)模式有哪些旦棉?

4.項(xiàng)目中常用的設(shè)計(jì)模式

5.手寫生產(chǎn)者/消費(fèi)者模式

6.寫出觀察者模式的代碼

7.適配器模式,裝飾者模式药薯,外觀模式的異同绑洛?

8.用到的一些開源框架,介紹一個(gè)看過源碼的童本,內(nèi)部實(shí)現(xiàn)過程真屯。

9.談?wù)剬?duì)RxJava的理解

10.Rxjava發(fā)送事件步驟

11.RxJava的作用,與平時(shí)使用的異步操作來比的優(yōu)缺點(diǎn)

12.說說EventBus作用穷娱,實(shí)現(xiàn)方式绑蔫,代替EventBus的方式

13.從0設(shè)計(jì)一款A(yù)pp整體架構(gòu),如何去做泵额?

14.說一款你認(rèn)為當(dāng)前比較火的應(yīng)用并設(shè)計(jì)(比如:直播APP配深,P2P金融,小視頻等)

15.談?wù)剬?duì)java狀態(tài)機(jī)理解

16.Fragment如果在Adapter中使用應(yīng)該如何解耦嫁盲?

17.Binder機(jī)制及底層實(shí)現(xiàn)

1.對(duì)熱修復(fù)和插件化的理解

2.插件化原理分析

3.模塊化實(shí)現(xiàn)(好處篓叶,原因)

4.熱修復(fù)、插件化

5.項(xiàng)目組件化的理解

6.描述清點(diǎn)擊 Android Studio 的 build 按鈕后發(fā)生了什么

1羞秤、圖片庫對(duì)比

3缸托、圖片加載原理

4、自己去實(shí)現(xiàn)圖片庫锥腻,怎么做嗦董?

5母谎、Glide源碼解析

6瘦黑、Glide使用什么緩存?

7、Glide內(nèi)存緩存如何控制大行页狻匹摇?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市甲葬,隨后出現(xiàn)的幾起案子廊勃,更是在濱河造成了極大的恐慌,老刑警劉巖经窖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坡垫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡画侣,警方通過查閱死者的電腦和手機(jī)冰悠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來配乱,“玉大人溉卓,你說我怎么就攤上這事“崮啵” “怎么了桑寨?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忿檩。 經(jīng)常有香客問我尉尾,道長(zhǎng),這世上最難降的妖魔是什么燥透? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任代赁,我火速辦了婚禮,結(jié)果婚禮上兽掰,老公的妹妹穿的比我還像新娘芭碍。我一直安慰自己,他們只是感情好孽尽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布窖壕。 她就那樣靜靜地躺著,像睡著了一般杉女。 火紅的嫁衣襯著肌膚如雪瞻讽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天熏挎,我揣著相機(jī)與錄音速勇,去河邊找鬼。 笑死坎拐,一個(gè)胖子當(dāng)著我的面吹牛烦磁,可吹牛的內(nèi)容都是我干的养匈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼都伪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼呕乎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起陨晶,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤猬仁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后先誉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湿刽,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年褐耳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叭爱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡漱病,死狀恐怖买雾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杨帽,我是刑警寧澤漓穿,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站注盈,受9級(jí)特大地震影響晃危,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜老客,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一僚饭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胧砰,春花似錦鳍鸵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哲嘲,卻和暖如春贪薪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眠副。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工画切, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囱怕。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓霍弹,卻偏偏與公主長(zhǎng)得像毫别,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庞萍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容