天天看點

Android面試題目20171009

關于技術準備,主要是包含下面幾項:

項目經曆

Java基礎

設計模式

算法

網絡相關知識

Android基礎

Android源碼

Android性能優化

開源庫源碼

藍廠 :

一面就挂了,主要是以下幾個問題:

事件分發流程

View的渲染機制

動畫的原理,底層如何給上層信号

編譯打包的過程

Android有多個資源檔案夾,應用在不同分辨率下是如何查找對應檔案夾下的資源的,描述整個過程

ANR的原理(回答主線程5秒阻塞是不行的,要讀源碼)

度娘 :

Bitmap 使用時候注意什麼?

Oom 是否可以try catch ?

記憶體洩露如何産生?

擴充卡模式,裝飾者模式,外觀模式的異同?

ANR 如何産生?

String buffer 與string builder 的差別?

如何保證線程安全?

java四中引用

Jni 用過麼?

多程序場景遇見過麼?

關于handler,在任何地方new handler 都是什麼線程下

sqlite更新,增加字段的語句

bitmap recycler 相關

強引用置為null,會不會被回收?

glide 使用什麼緩存?

Glide 記憶體緩存如何控制大小?

如何保證多線程讀寫檔案的安全?

某海外直播公司

一面:

線程和程序的差別?

為什麼要有線程,而不是僅僅用程序?

算法判斷單連結清單成環與否?

如何實作線程同步?

hashmap資料結構?

arraylist 與 linkedlist 異同?

object類的equal 和hashcode 方法重寫,為什麼?

hashmap如何put資料(從hashmap源碼角度講解)?

簡述IPC?

fragment之間傳遞資料的方式?

簡述tcp四次揮手?

threadlocal原理

記憶體洩漏的可能原因?

用IDE如何分析記憶體洩漏?

OOM的可能原因?

線程死鎖的4個條件?

內插補點器&估值器

二面:

簡述消息機制相關

程序間通信方式?

Binder相關?

觸摸事件的分發?

簡述Activity啟動全部過程?

okhttp源碼?

RxJava簡介及其源碼解讀?

性能優化如何分析systrace?

廣播的分類?

點選事件被攔截,但是相傳到下面的view,如何操作?

Glide源碼?

ActicityThread相關?

volatile的原理

synchronize的原理

lock原理

三面:

三道算法題,要求在一個小時之内做完。

翻轉一個單項連結清單 1->2->3->4->5->null =====> 5->4->3->2->1->null

string to integer

合并多個單有序連結清單(假設都是遞增的)

四面:

總監面,問了一些java 同步相關的。

由鵝廠與其他公司合資創立的公司

一場筆試加一場面試後挂了,面試官T4級别……。

筆試:

Activity生命周期簡述

.常見記憶體洩漏情景及避免記憶體洩漏的措施

Actvity啟動模式簡述

簡繪觀察者設計模式UML圖

算法,求公共子序列(或者是子串,記不清了)

Java四種引用

自定義view重寫哪幾個方法?

http 的session&cookie的差別

簡述工作線程更新UI的方法

面試:

應用最多占多少記憶體

滑動卡頓如何解決(不同原因及對應處理方式)

自定義view實戰

多線程,多程序 相關

Java四種引用的使用

某ding

一面就挂。

XX項目你負責什麼

Sqlite 怎麼增加一個字段

XX項目中是怎麼建立資料庫的

Sqlite 怎麼删除一個字段

有什麼你覺得自己做得好的地方

為什麼用Retrofit(一個開源庫)

Retrofit與之前的網絡庫有什麼優勢

XX項目中你們自己定義的線程池來管理任務,不使用架構,那麼,後來新的項目怎麼設計的

你認為Rxjava的線程池與你們自己實作任務管理架構有什麼差別?

記憶體洩漏的常見場景

怎麼發現&分析記憶體洩漏

某條

面了三輪技術加一輪HR,HR事業線不錯,笑得職業化,其他的沒記住。

其他

處理有序數組為什麼比無序數組更快 參考StackOverflow

熱修複與插件化相關

Integer類是不是線程安全的,為什麼

不使用同步鎖如何實作線程安全

面試頭條的時候線上程式設計:從上到下從左到右輸出二叉樹

針對concurrent包下面的一些類的問題

Android面試再也不是“能答出來Activity生命周期就OK”的時代了,你們看前面的面試題,有些問題牽扯到底層原理。另外光是concurrent包下面的東西就能把你問懵逼了。

繼續閱讀