Android面試指南
Java部分:
面向對象:
java中的四大特性是什麼?
解釋繼承和多態?
java 支持多繼承嗎?如果不支持,如何實現?
方法重載和方法覆蓋的區別?
基本知識:
java支持的基本類型有哪些?自動拆裝箱是什麼?
static和final的作用
什麼是值傳遞和引用傳遞?
String 和StringBuffer,StringBuilder的區別
泛型:
java 的泛型以及泛型擦除是什麼?
泛型中的非限定和限定泛型的區別
I/O:
熟悉常見的字節流和字符流類
反射:
什麼是反射?反射機制是什麼?
註解:
註解的概念以及元註解
容器:
常見的線程安全的容器有哪些?
HashMap和HashTable 的區別?
java中的hashMap的工作原理
併發:
進程和線程的區別?
創建線程的幾種方法?有什麼異同?
線程的幾種狀態間的轉換
volatile和atomic有什麼不同?
ThreadLocal 的原理
Thread類中的start和run 有什麼區別
線程同步的方式
Callable和Runnable的區別
CurrentHashMap的工作原理
線程池的概念以及應用
原子性和可見性
死鎖的必要條件
虛擬機:
java 中四種引用,以及應用場景
JVM內存分區,每個區的作用
java的垃圾回收機制和回收算法
java的類加載機制?和雙親委派模型
java的內存模型
Android部分:
四大組件:
Activity的生命週期
onSaveInstance和onRestoreInstanceState調用的時機和過程
onNewIntent 的調用
Activity 的四種啓動模式
fragment的生命週期和Activity如何通信
廣播的註冊方式
View體系:
View 的繪製流程
touchEvent 的事件傳遞機制
自定義View 的流程,以及自己做過最複雜的View
消息傳遞機制:
Handler和Looper的使用和實現機制
HandlerThread的概念
進程間通信:
AIDL的工作流程
動畫:
view動畫和屬性動畫的區別
性能優化:
android 如何檢查內存泄露
佈局優化
數據存儲:
數據庫如何升級
網絡請求:(xml,json)
框架源碼分析:
Volley框架原理和源碼分析
android動態加載框架原理
黑科技:
推送的實現?心跳包的實現
App如何防止被殺
混合開發:
html5和hybird的混合開發
新技術:
Rxjava是否用過
設計模式:
常用的設計模式?講講你最熟悉的
數據結構: