Android面試題目持續更新中
阿新 • • 發佈:2018-11-20
Java部分
基礎
- String buffer 與string builder 的區別?
- hashmap資料結構?
- arraylist 與 linkedlist 異同?
- object類的equal 和hashcode 方法重寫,為什麼?
- hashmap如何put資料(從hashmap原始碼角度講解)?
執行緒問題
- 執行緒死鎖的4個條件?
- Integer類是不是執行緒安全的,為什麼
- 不使用同步鎖如何實現執行緒安全
- 如何保證執行緒安全?
- 如何保證多執行緒讀寫檔案的安全?
- 執行緒和程序的區別?
- 為什麼要有執行緒,而不是僅僅用程序?
- 如何實現執行緒同步?
記憶體問題
- Java四種引用
- 強引用置為null,會不會被回收?
網路問題
- http 的session&cookie的區別
- 簡述tcp四次揮手?
原理
- 差值器&估值器
- 處理有序陣列為什麼比無序陣列更快
- volatile的原理
- synchronize的原理
- lock原理
- threadlocal原理
Android 基礎
- 事件分發流程
- View的渲染機制
- 動畫的原理,底層如何給上層訊號
- 編譯打包的過程
- Android有多個資原始檔夾,應用在不同解析度下是如何查詢對應資料夾下的資源的,描述整個過程
- ANR的原理(回答主執行緒5秒阻塞是不行的,要讀原始碼)
ANR 如何產生?
Jni 用過麼?
多程序場景遇見過麼?
關於handler,在任何地方new handler 都是什麼執行緒下
bitmap recycler 相關
簡述IPC?
fragment之間傳遞資料的方式?
簡述訊息機制相關
程序間通訊方式?
Binder相關?
觸控事件的分發?
廣播的分類?
點選事件被攔截,但是相傳到下面的view,如何操作?
自定義view重寫哪幾個方法?
簡述工作執行緒更新UI的方法
滑動卡頓如何解決(不同原因及對應處理方式)
自定義view實戰
Actvity相關問題
Activity生命週期簡述
Actvity啟動模式簡述
簡述Activity啟動全部過程?
記憶體問題
- 記憶體洩漏的可能原因?
- 用IDE如何分析記憶體洩漏?
- OOM的可能原因?
- 記憶體洩漏的常見場景
怎麼發現&分析記憶體洩漏
常見記憶體洩漏情景及避免記憶體洩漏的措施
應用最多佔多少記憶體
記憶體洩露如何產生?
Bitmap 使用時候注意什麼?
Oom 是否可以try catch ?
資料庫問題
Sqlite 怎麼增加一個欄位
XX專案中是怎麼建立資料庫的
Sqlite 怎麼刪除一個欄位
sqlite升級,增加欄位的語句
設計模式
- 介面卡模式,裝飾者模式,外觀模式的異同?
- 簡繪觀察者設計模式UML圖
第三方庫
glide 使用什麼快取?
Glide 記憶體快取如何控制大小?
Glide原始碼?
okhttp原始碼?
RxJava簡介及其原始碼解讀?
為什麼用Retrofit(一個開源庫)
Retrofit與之前的網路庫有什麼優勢
演算法
演算法判斷單鏈表成環與否?
翻轉一個單項鍊表 1->2->3->4->5->null =====> 5->4->3->2->1->null
string to integer
合併多個單有序連結串列(假設都是遞增的)
演算法,求公共子序列(或者是子串,記不清了)
效能優化
效能優化如何分析systrace?
新技術
熱修復與外掛化相關