每次要開始新的面試的時候總要重新找相關知識點,每次找到的也都是類似的知識,所以轉載整理一些別人的乾貨,以後就不用費心思了。都是從鴻洋大神那裏借來的
整個面試題分爲三個部分:Java、Android和項目經驗。
-
對抽象、繼承、多態的理解
-
泛型的作用及使用場景
-
枚舉的特點及使用場景
-
線程sleep和wait的區別
-
JAVA反射機制
-
weak/soft/strong引用的區別
-
Object的hashCode()與equals()的區別和作用
-
JAVA常用集合類功能、區別和性能
-
併發相關的集合類
-
部分常用集合類的內部實現方式
-
Thread、Runnable、Callable、Futrue類關係與區別
-
JDK中默認提供了哪些線程池,有何區別
-
線程同步有幾種方式,分別闡述在項目中的用法
-
在理解默認線程池的前提下,自己實現線程池
-
String的不可變性
-
StringBuilder和StringBuffer的區別
-
字符集的理解:Unicode、UTF-8、GB2312等
-
正則表達式相關問題
-
註解的使用
-
註解的級別及意義
-
如何自定義註解
-
四大組件的意義及使用,生命週期回調及意義
-
AsyncTask、Handler的使用
-
Android系統層次框架結構
-
AsyncTask的實現方式
-
AsyncTask使用的時候應該注意什麼
-
Android常見的存儲方式
-
Looper、Handler和MessageQueue的關係
-
Activity的啓動流程(考察對Framwork的熟悉程度)
-
多進程開發的注意事項(Application類區分進程,進程間內存不可見、進程間通訊方式)
-
.9圖片的意義
-
style和theme的作用及用法
-
dpi、sp、px的區別以及轉換關係
-
raw和assets文件夾的作用,二者有何區別
-
Android系統如何在多個資源文件夾下查找匹配最合適的資源
-
Java內存模型
-
Android虛擬機的特點
-
Dalvik和Art的區別
-
熟悉垃圾回收的實現機制,瞭解虛擬機的GC類型
-
常用組件的使用:ListView、RecyclerView及Adapter的使用
-
View之間的繼承關係
-
Invalidate與postInvalidate的區別
-
自定義View的實現方式(根據項目經驗詢問相關組件)。
-
onMeasure/onLayout/onDraw的作用
-
Paint、Matrix、Shader等繪製相關類的方法作用
-
詳細描述事件分發機制
-
Android有哪些動畫的實現方式
-
Interpolator類的意義和常用的Interpolator
-
ViewAnimation與屬性動畫有什麼區別
-
如何自定義ViewAnimation
-
屬性動畫的實現原理
-
一般項目中如何加載大圖
-
圖片壓縮的方式
-
如何不壓縮圖片加載高清圖
-
圖片加載過程中,一般會使用緩存,這個緩存的主要作用是什麼
-
談談自己熟悉的圖片加載框架
-
代碼管理工具:SVN、Git
-
常用的調試工具:Hierarchy Viewer、DDMS等
-
CI工具:Lint檢查,FindBugs、Jenkins
-
內存分析工具:dumpsys、memoinfo、MAT
-
APP更新策略:推送或者拉取?
-
如何統一處理錯誤崩潰
-
如何進行用戶行爲收集
-
日誌管理有哪些要點?(Debug包開放,release包關閉,錯誤日誌反饋)
-
打包方式Ant、Maven、Gradle
-
機型適配情況
-
是否使用過第三方平臺
-
常用開放平臺的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
-
是否進行過對第三方平臺的統一封裝?
-
是否自己開發過SDK?
-
有哪些常用的設計模式、設計原則
-
設計模式在Android源碼中的應用
-
設計模式在項目中的應用
-
項目中的分包方式
-
MVC在android中的應用,利弊
-
android項目中的常見層次結構,包劃分
-
有沒有設計過項目中的層級結構、包劃分
http://blog.csdn.net/lmj623565791/article/details/24015867