面試題整理

面試題

本身遇到的問題

  • 如何保證本地密鑰的安全answer

阿里巴巴

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

騰訊

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

滴滴

  • MVP
  • 廣播(動態註冊和靜態註冊區別,有序廣播和標準廣播)
  • service生命週期
  • handler實現機制(關注細節,線程如何簡歷,和如何退出消息循環)
  • 多線程(關於AsyncTask缺陷引起的思考)
  • 數據庫數據遷移問題
  • 設計模式相關(例如Android中哪裏使用了觀察者模式,單例模式相關)
  • x個蘋果,一天只能吃一個、兩個、三個、問多少天能夠吃完
  • TCP與UDP區別與應用(三次握手和四次揮手)涉及到部分細節(如client如何肯定本身發送的消息被server收到)HTTP相關提到過Websocket相關以及socket的區別
  • 是否熟悉Android jni開發,jni如何調用Java層代碼
  • 進程間通訊的方式
  • Java註解
  • 計算一個view的嵌套層級
  • 項目組件化的理解
  • 多線程斷點續傳原理
  • Android系統爲何會設計ContentProvider,進程共享和線程安全問題
  • jvm相關
  • Android相關優化(內存優化。網絡優化,佈局優化,電量優化,業務優化)
  • EventBus實現原理

美團

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

今日頭條

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

愛奇藝

  • Rxjava的功能與原理實現java

  • RecycleView的使用,原理,Recycle優化android

  • ANR的緣由git

  • 四大組件github

  • Service的開啓方式面試

  • Activity與Service通訊方式算法

  • Activity之間的通訊方式sql

  • HashMap的實現答案,與HashSet的區別數據庫

  • JVM內存模型,內存區域設計模式

  • Java中同步使用的關鍵字,死鎖數組

  • MVP模式

  • Java設計模式,觀察者模式

  • Activity與Fragment之間生命週期比較

  • 廣播的使用場景

百度

  • bitmap使用時候注意什麼?
  • OOM是否能夠try catch?
  • 內存泄漏如何產生?
  • 適配器模式,裝飾者模式,外觀模式的異同?
  • ANR如何產生?
  • 適配器模式,裝飾者模式,外觀模式的異同?
  • ANR如何產生?
  • String buffer與string builder區別
  • 如何保證線程安全?
  • Java 四個引用
  • jni用過嗎
  • 多進程場景碰見過嘛
  • 關於handler,在任何地方 new handler 都是什麼線程下
  • sqlite升級,增長字段的語句
  • bitmap recycler相關
  • 強引用職位null 會不會被回收
  • glide使用什麼緩存
  • glide內存緩存如何控制大小
  • 如何保證多線程讀寫文件的安全

攜程

  • Activity啓動模式

  • 廣播的使用方式,場景

  • App中喚醒其餘進程的實現方式

  • AndroidManifest的做用與理解

  • List,Set,Map的區別

  • HashSet與HashMap怎麼判斷集合元素重複

  • Java中內存區域與垃圾回收機制

  • EventBus做用,實現方式,代替EventBus的方式

  • Android中開啓攝像頭的主要步驟

網易

  • 集合

  • ConcurrentHashMap答案

  • volatileAnswer

  • synchronized與LockAnswer

  • Java線程池

  • wait/notify

  • NIO

  • 垃圾收集器

  • Activity生命週期

  • AlertDialog,popupWindow,Activity區別

小米

  • String爲何要設計成不可變的

  • fragment各類狀況下的生命週期

  • Activty上有Dialog的時候按home鍵時的生命週期

  • 橫豎屏切換的時候,Activity各類狀況下的生命週期

  • Applicaition和Activity的context對象的區別

  • List和Map的實現方式以及存儲方式

  • 靜態內部類的設計意圖

  • 線程如何關閉,以及如何防止線程的內存泄漏

360

  • 軟引用、弱引用區別

  • 垃圾回收

  • 多線程:怎麼用、有什麼問題要注意;

  • Android線程有沒有上限,而後提到線程池的上限

  • JVM

  • OOM,內存泄漏

  • ANR怎麼分析解決

  • LinearLayout、RelativeLayout、FrameLayout的特性,使用場景

  • 如何實現Fragment的滑動

  • viewpager使用細節,如何設置成每次只初始化當前的fragemnt,其餘的不初始化

  • listviw重用的是什麼

  • 進程間通訊的機制

  • AIDL機制

  • AsyncTask機制

  • 如何取消AysncTask

  • 序列化

  • Android爲何引入Parcelable

  • 有沒有嘗試簡化parcelable的使用

  • AIDL機制

  • 項目:拉活怎麼作的

  • 應用安裝過程

某海外直播公司

  • 線程和進程的區別
  • 爲何要有線程。而不是僅僅使用進程?
  • 算法判斷單鏈表成環與否?答案
  • 如何實現線程同步?
  • hashmap數據結構答案
  • arraylist與linkedlist異同
  • object類的equal和hashcode方法重寫,爲何?
  • hashmap如何put數據答案
  • 簡述IPC
  • fragment之間傳遞數據的方式
  • 簡述tcp四次揮手
  • threadlocal原理
  • 內存泄漏的可能緣由
  • 用ide如何分析內存泄漏
  • oom的可能緣由
  • 線程死鎖的4個條件?
  • 差值器&估值器
  • 簡述消息機制相關
  • 進程間通訊方式
  • Binder相關
  • 觸摸事件的分發?
  • 簡述Activity啓動所有過程?
  • okhttp源碼?
  • Rxjava簡介以及源碼解讀?
  • 性能優化如何分析systrace
  • 廣播的分類
  • 點擊事件被攔截,可是相傳到下面的view,如何操做?
  • glide源碼?
  • ActivityThread相關?
  • volatile的原理 Answer
  • synchrozie的原理
  • lock的原理
  • 翻轉一個單項鍊表
  • string to integer
  • 合併多個單有序鏈表

其餘公司

  • 四大組件
  • Android中數據存儲方式
  • 微信主頁面的實現方式
  • 微信上消息小紅點的原理
  • 兩個不重複的數據集合中,求共同的元素
  • 上一問擴展,海量數據下,內存中發佈下,怎麼求出
  • Java中string的瞭解
  • ArrayList與linkedlist區別
  • 堆排序過程,時間複雜度,空間複雜度
  • 快速排序的時間複雜度,空間複雜度
  • Rxjva的做用,與平時使用的異步操做來比,優點
  • Android消息機制原理
  • Binder機制介紹
  • 爲何不能在子線程更新UI
  • JVM內存模型
  • Android中進程內存的分配,能不能本身分配定額內存
  • 垃圾回收機制與調用System,gc()
  • Android事件分發機制
  • 斷點續傳的實現
  • Rxjava的做用,優缺點
相關文章
相關標籤/搜索