面試回憶錄「上」(騰訊/阿里/滴滴/美團...)

點擊上方的終端研發部,右上角選擇「設爲星標」
每日早9點半,技術文章準時送上
公衆號後臺回覆「學習」,獲取做者獨家祕製精品資料java

image
image

往期文章android

記五月的一個Android面試經程序員

今日頭條屏幕適配方案落地研究面試

APK瘦身-是時候給App進行減負了算法

即學即用Android Jetpack - Navigation數據庫

手機商對「鴻蒙」進行了密集測試:比安卓系統快?設計模式

image

原文地址:https://www.jianshu.com/p/4e839adcd559緩存

做者:soulrelay安全

前言

也許到了金九銀十,不少人在羣裏問我要面試題,沒辦法,也許太難伺候了,好吧,就給你們總結一波。目前部分對基本工和源碼比較看重,主流的Kotlin,Flutter也會有所要求。其餘算法,源碼,算法,自定義View萬變不留其中,要想在這條android走下去,要學習的是不少的本文非最新面試題,參考更均可以去到個人公號去搜索。性能優化

近3年BAT面試真題整理合集

2019最新Android面試題

還在爲面試發愁嗎—這裏將教會你如何去面試

回顧我兩個月面試阿里,攜程,小紅書,美團,網易等等(Java崗)

寫這篇面試回憶錄的目的:梳理一下面試過程的知識點,爲了之後能夠更直觀地回憶
但願給正在或者準備面試的朋友提供一些幫助其它:

沒有嚴格按照一面、二面、三面來區分

目錄

騰訊OMG

  • synchronize用法
  • volatile用法
  • 動態權限適配方案,權限組的概念
  • 網絡請求緩存處理,okhttp如何處理網絡緩存的
  • 圖片加載庫相關,bitmap如何處理大圖,如一張30M的大圖,如何預防OOM
  • 進程保活
  • listview圖片加載錯亂的原理和解決方案
  • https相關,如何驗證證書的合法性,https中哪裏用了對稱加密,哪裏用了非對稱加密,對加密算法(如RSA)等是否有了解

阿里巴巴

  • 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 的區別,性能

滴滴

  • MVP
  • 廣播(動態註冊和靜態註冊區別,有序廣播和標準廣播)
  • service生命週期
  • handler實現機制(不少細節須要關注:如線程如何創建和退出消息循環等等)
  • 多線程(關於AsyncTask缺陷引起的思考)
  • 數據庫數據遷移問題
  • 設計模式相關(例如Android中哪裏使用了觀察者模式,單例模式相關)
  • 微信的聊天數據在本地都是加密處理的(防止root了被破解),設計一個相似的本地數據存儲系統
  • x個蘋果,一天只能吃一個、兩個、或者三個,問多少天能夠吃完
  • Android相關你最擅長哪一塊
  • TCP與UDP區別與應用(三次握手和四次揮手)涉及到部分細節(如client如何肯定本身發送的消息被server收到) HTTP相關 提到過Websocket 問了WebSocket相關以及與socket的區別
  • 是否熟悉Android jni開發,jni如何調用java層代碼
  • 進程間通訊的方式
  • java註解
  • 計算一個view的嵌套層級
  • 項目組件化的理解
  • 基於自身工做經驗和計算機相關知識,給出 移動端地圖局部加載 瓦片大小的像素大小估值
  • 多線程斷點續傳原理
  • Android系統爲何會設計ContentProvider,進程共享和線程安全問題
  • jvm相關
  • Android相關優化(如內存優化、網絡優化、佈局優化、電量優化、業務優化)
  • EventBus實現原理

美團

  • 線程掛起,休眠,釋放資源相關,喚醒,線程同步,數據傳遞,問了不少線程的問題,問了20分鐘大概
  • static synchronized 方法的多線程訪問和做用,同一個類裏面兩個synchronized方法,兩個線程同時訪問的問題
  • 內部類和靜態內部類和匿名內部類,以及項目中的應用
  • 泛型是什麼以及在項目中的應用
  • handler發消息給子線程,looper怎麼啓動
  • down、move、up事件的傳遞
  • activity棧
  • 封裝view的時候怎麼知道view的大小
  • intent-filter
  • arraylist和linkedlist的區別,以及應用場景
  • 怎麼啓動service,service和activity怎麼進行數據交互
  • 下拉狀態欄是否是影響activity的生命週期,若是在onStop的時候作了網絡請求,onResume的時候怎麼恢復
  • view渲染

總結

共同點:對基礎性、原理性的東西比較重視
具體問題的解決能力、項目的架構能力不一樣點:公司不一樣、產品業務線不一樣,因此涉及的技術重點和方向不一樣

思考:

有些東西你不只要懂,並且要可以很好地表達出來,可以讓面試官承認你的理解,例如Handler機制,這個是面試必問之題。有些晦澀的點,或許它只活在面試當中,實際工做當中你壓根不會用到它,可是你要知道它是什麼東西

閱讀更多

程序員接私活經驗總結

今日頭條屏幕適配方案落地研究

IDEA 的優雅調試,讓 bug 無處藏身!

面試官:你分析過線程池源碼嗎?

相信本身,沒有作不到的,只有想不到的

在這裏得到的不單單是技術!

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