面試BAT大廠,可少不了這些題目!

前言

近期根據網友分享大廠面試題目,今天我將網友面試的BAT等大廠Android面試題目整理出來,但願可以幫助你們!android

面試答案獲取:Android學習PDF+架構視頻+面試文檔+源碼筆記git

阿里巴巴

image

  • LRUCache原理
  • 圖片加載原理
  • 模塊化實現(好處,緣由)
  • JVM
  • 視頻加密傳輸
  • 統計啓動時長,標準
  • 如何保持應用的穩定性
  • ThreadLocal 原理
  • 談談classloader
  • 動態佈局
  • 熱修復,插件化
  • HashMap源碼,SpareArray原理
  • 性能優化,怎麼保證應用啓動不卡頓
  • 怎麼去除重複代碼
  • SP是進程同步的嗎?有什麼方法作到同步
  • 介紹下SurfView
  • HashMap實現原理,ConcurrentHashMap 的實現原理
  • BroadcastReceiver,LocalBroadcastReceiver 區別
  • Bundle 機制
  • Handler 機制
  • android 事件傳遞機制
  • 線程間 操做 List
  • App啓動流程,從點擊桌面開始
  • 動態加載
  • 類加載器
  • OSGI
  • Https請求慢的解決辦法,DNS,攜帶數據,直接訪問IP
  • GC回收策略
  • 畫出 Android 的大致架構圖
  • 描述清點擊 Android Studio 的 build 按鈕後發生了什麼,大致說清一個應用程序安裝到手機上時發生了什麼;
  • 對 Dalvik、ART 虛擬機有基本的瞭解;
  • Android 上的 Inter-Process-Communication 跨進程通訊時如何工做的;
  • App 是如何沙箱化,爲何要這麼作;
  • 權限管理系統(底層的權限是如何進行 grant 的)
  • 進程和 Application 的生命週期;
  • 系統啓動流程 Zygote進程 –> SystemServer進程 –> 各類系統服務 –> 應用進程
  • recycleview listview 的區別,性能
  • 排序,快速排序的實現
  • 樹:B 樹的介紹
  • 圖:有向無環圖的解釋
  • TCP/UDP的區別
  • synchronized與Lock的區別
  • volatile
  • Java線程池
  • Java中對象的生命週期
  • 類加載機制
  • 雙親委派模型
  • Android事件分發機制
  • MVP模式
  • RxJava
  • 抽象類和接口的區別
  • 集合 Set實現 Hash 怎麼防止碰撞
  • JVM 內存區域 開線程影響哪塊內存
  • 垃圾收集機制 對象建立,新生代與老年代
  • 二叉樹 深度遍歷與廣度遍歷
  • B樹、B 樹
  • 消息機制
  • 進程調度
  • 進程與線程
  • 死鎖
  • 進程狀態
  • JVM內存模型
  • 併發集合瞭解哪些
  • ConCurrentHashMap實現
  • CAS介紹
  • 開啓線程的三種方式,run()和start()方法區別
  • 線程池
  • 經常使用數據結構簡介
  • 判斷環(猜想應該是鏈表環)
  • 排序,堆排序實現
  • 鏈表反轉
  • 動態權限適配方案,權限組的概念
  • 網絡請求緩存處理,okhttp如何處理網絡緩存的
  • 圖片加載庫相關,bitmap如何處理大圖,如一張30M的大圖,如何預- - 防OOM
  • 進程保活
  • listview圖片加載錯亂的原理和解決方案
  • https相關,如何驗證證書的合法性,https中哪裏用了對稱加密,哪裏用了非對稱加密,對加密算法(如RSA)等是否有了解

美團

image

  • static synchronized 方法的多線程訪問和做用,同一個類裏面兩個synchronized方法,兩個線程同時訪問的問題
  • 內部類和靜態內部類和匿名內部類,以及項目中的應用
  • handler發消息給子線程,looper怎麼啓動
  • View事件傳遞
  • activity棧
  • 封裝view的時候怎麼知道view的大小
  • arraylist和linkedlist的區別,以及應用場景
  • 怎麼啓動service,service和activity怎麼進行數據交互
  • 下拉狀態欄是否是影響activity的生命週期,若是在onStop的時候作了* 網絡請求,onResume的時候怎麼恢復
  • view渲染

今日頭條

image

  • 數據結構中堆的概念,堆排序
  • 死鎖的概念,怎麼避免死鎖
  • ReentrantLock 、synchronized和volatile(n面)
  • HashMap
  • singleTask啓動模式
  • 用到的一些開源框架,介紹一個看過源碼的,內部實現過程。
  • 消息機制實現
  • ReentrantLock的內部實現
  • App啓動崩潰異常捕捉
  • 事件傳遞機制的介紹
  • ListView的優化
  • 二叉樹,給出根節點和目標節點,找出從根節點到目標節點的路徑
  • 模式MVP,MVC介紹
  • 斷點續傳的實現
  • 集合的接口和具體實現類,介紹
  • TreeMap具體實現
  • synchronized與ReentrantLock
  • 手寫生產者/消費者模式
  • 邏輯地址與物理地址,爲何使用邏輯地址
  • 一個無序,不重複數組,輸出N個元素,使得N個元素的和相加爲M,* 給出時間複雜度、空間複雜度。手寫算法
  • .Android進程分類
  • 前臺切換到後臺,而後再回到前臺,Activity生命週期回調方法。彈出Dialog,生命值週期回調方法。
  • Activity的啓動模式

愛奇藝

image

  • RxJava的功能與原理實現
  • RecycleView的使用,原理,RecycleView優化
  • ANR的緣由
  • 四大組件
  • Service的開啓方式
  • Activity與Service通訊的方式
  • Activity之間的通訊方式
  • HashMap的實現,與HashSet的區別
  • JVM內存模型,內存區域
  • Java中同步使用的關鍵字,死鎖
  • MVP模式
  • Java設計模式,觀察者模式
  • Activity與Fragment之間生命週期比較
  • 廣播的使用場景

百度

image

  • https與http區別
  • https下的TCP連接與通常TCP鏈接有什麼不一樣
  • handler機制
  • service與線程的區別
  • service中startservice與bindservice再中止時有什麼區別
  • 實現一個隊列的方式
  • view的各自優點有哪些
  • view繪製過程。
  • view的分發機制
  • binder源碼
  • git merge與git rebase的區別
  • B B-數樹瞭解
  • Android動畫有哪些。屬性動畫與補間動畫的區別
  • OKhttp源碼說一下
  • https的加密流程,CA證書怎麼驗證
  • http格式,經常使用狀態碼
  • 對稱加密算法,非對稱加密算法
  • 手撕代碼,歸併兩個升序數組,說一下時間複雜度

騰訊

image

  • GC機制;
  • RxJava有沒有了解;
  • 內存泄漏怎麼排查;
  • app的頁面忽然卡了一下,怎麼排查?
  • ANR怎麼排查?定義是什麼?
  • 使用過哪些開源庫;
  • 對OKHttp有哪些瞭解?這個框架設計怎麼樣?
  • Databinding有哪些瞭解?
  • EventBus瞭解嗎?
  • 安卓的註解有什麼瞭解?
  • RelativeLayout和LinearLayout怎麼選?爲何?
  • 自定義Layout主要有那幾個流程?
  • 滑動過程卡頓,刷新率過低,怎麼排查?

總結

以上這些就是他面試大廠時遇到的Android面試題目,但願能幫助到你們,最後囑咐你們一句:「真正面試中,尤爲是大公司中面試,沒有固守成規的問法,惟有實力認真才能贏」。 面試:若是不許備充分的面試,徹底是浪費時間,更是對本身的不負責! 金九銀十面試季,趕快去爲本身的面試作足準備吧! 無論怎麼樣,不管是什麼樣的大小面試,要想不被面試官虐的不要不要的,只有刷爆面試題題作好全面的準備,固然除了這個還須要在平時把本身的基礎打紮實,這樣不論面試官怎麼樣一個知識點裏往死裏鑿,你也能應付如流啊~面試

相關文章
相關標籤/搜索