Android最新面試題總結(jié)

前言

每次面試前的準(zhǔn)備都是到處查找資料,這次打算記錄一下準(zhǔn)備過程中的遇到的問題,作為對自己所掌握的知識點的一個總結(jié),查漏補缺,也能讓后續(xù)的面試更加順利。本文主要是列出問題,答案也會視情況在后續(xù)文章更新。本文的內(nèi)容后續(xù)也會持續(xù)更新。

Java篇

  • java多態(tài)的實現(xiàn)原理。動態(tài)類型綁定相關(guān)。
  • volatile關(guān)鍵字作用。內(nèi)存可見性(jmm的理解),禁止指令重排,無法保證原子性。
  • synchronized關(guān)鍵字作用,實現(xiàn)原理。公平鎖/非公平鎖,可重入鎖/不可重入鎖,樂觀鎖/悲觀鎖,共享鎖/排他鎖。鎖升級。
  • 死鎖的概念,什么情況下造成死鎖。
  • HashMap數(shù)據(jù)結(jié)構(gòu),擴(kuò)容原理,java8版本的鏈表轉(zhuǎn)紅黑樹。HashMap的源代碼需要熟讀,里面有很多經(jīng)典代碼設(shè)計。
  • ConcurrentHashMap數(shù)據(jù)結(jié)構(gòu),如何get,擴(kuò)容原理,擴(kuò)容時其他線程如果感知,CASsynchronized的使用。
  • 線程池。為什么要用線程池。ThreadPoolExecutor的各個參數(shù)的具體含義。幾種阻塞隊列BlockingQueue的使用和區(qū)別。線程池的種類以及其對應(yīng)的參數(shù)。
  • join的使用
  • waitsleep的區(qū)別
  • Object類有哪些方法
  • CopyOnWriteArrayList如何實現(xiàn)同步
  • 有哪些線程安全的容器類

Jvm篇

  • jvm內(nèi)存模型。線程共享區(qū),非線程共享區(qū)。
  • GC算法。標(biāo)記-清除,復(fù)制算法,標(biāo)記整理。GC的目的是降低GC頻率。
  • GC root如何選取。

Android篇

  • Android事件分發(fā)機制。除了view里面的那一套,你知道事件是怎么從點擊屏幕傳到Activity的嗎?IMS的事件處理機制。
  • Activity的生命周期。fragment生命周期。service生命周期。
  • 卡頓的原理。如果做線上卡頓監(jiān)控,具體如何實現(xiàn)。
  • 如何定位內(nèi)存泄漏,其實現(xiàn)原理是什么。
  • ANR的概念,如何排查。ANR具體觸發(fā)的原理(延時消息)。
  • 講一講Handler。Looper,MessageQueue相關(guān),擴(kuò)展到ThreadLocal相關(guān)。底層的epoll實現(xiàn)監(jiān)聽。消息延時的實現(xiàn)原理,post的實現(xiàn)原理。
  • 如何不壓縮情況實現(xiàn)大長圖的加載。BitmapRegionDecoder實現(xiàn)區(qū)域加載。
  • MVP MVVC架構(gòu)
  • 熱修復(fù)。熱修復(fù)的工作流程,Tinker框架的實現(xiàn)原理,AndFix實現(xiàn)原理,Robust實現(xiàn)原理。各個框架的優(yōu)劣。
  • 組件化。為什么要組件化?使用組件化的過程中遇到過哪些問題?怎么解決的?
  • 插件化。四大組件的插件化實現(xiàn)原理,資源插件化的實現(xiàn)原理,資源沖突的解決方案。市面上各個插件化框架的實現(xiàn)原理
  • 如何進(jìn)程?;?/li>
  • ListView圖片加載錯亂的原理和解決方案
  • RecyclerViewListView的區(qū)別,性能差異
  • LRUCached原理
  • SparseArray
  • SP是進(jìn)程同步的嗎?如果做到進(jìn)程同步
  • SurfaceView,GLSurfaceView,TextureView,SurfaceTexture的異同
  • BroadcastReceiverLocalBroadcastReceiver區(qū)別
  • Bundle機制
  • apk打包過程
  • apk安裝過程
  • 系統(tǒng)開機流程
  • DalvikART區(qū)別
  • App是如何做成沙箱化的
  • down move up事件的傳遞
  • 下拉通知欄對activity生命周期的影響
  • 線上卡頓檢測如何做
  • 線上內(nèi)存泄漏,oom如何檢測
  • R8 proguard

Jetpack篇

  • ViewModel在橫豎屏切換時為什么不銷毀。onRetainNonConfigurationInstance
  • LiveData
  • Room

Android Framework篇

  • Activity的啟動流程
  • Service的啟動流程
  • BroadcastReceiver的啟動流程
  • ContentProvider的啟動流程
  • IMS事件監(jiān)聽與分發(fā)
  • Android有哪些IPC手段。
  • Binder實現(xiàn)原理。
  • Handler如何實現(xiàn)延時消息的
  • Android幀渲染原理
  • setContentView的流程
  • 進(jìn)程啟動過程

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

  • https如何驗證證書的合法性
  • https請求慢的解決方法
  • TCPUDP區(qū)別與應(yīng)用
  • SocketWebsocket的區(qū)別與應(yīng)用

三方框架篇

  • okhttp如何處理網(wǎng)絡(luò)緩存的。有哪些攔截器
  • EventBus實現(xiàn)原理
  • RxJava
  • Glide Fresco對比
  • Retrofit實現(xiàn)原理

設(shè)計模式篇

  • 單例模式。懶漢式,惡漢式,雙重校驗,靜態(tài)內(nèi)部類,枚舉。手寫單例模式。
  • 手寫觀察者模式
  • Android系統(tǒng)哪些地方用到了設(shè)計模式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 1.手畫一下Android系統(tǒng)架構(gòu)圖,描述一下各個層次的作用? Android系統(tǒng)架構(gòu)圖 從上到下依次分為六層: ...
    __素顏__閱讀 6,085評論 1 107
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,889評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,391評論 4 8
  • 怎么對待生活,它也會怎么對你 人都是哭著來到這個美麗的人間。每個人從來到塵寰到升入天堂,整個生命的歷程都是一本書,...
    靜靜在等你閱讀 5,332評論 1 6

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