網上有不少的面試題系列,Android學習路線系列,本次整理也是看下本身對Android的熟悉程度,有哪些本身會了,哪些本身還不會須要學習,以便於本身更好的提升本身html
(文章末尾附有相關參考文章,都寫的特別好)java
java根類Object的方法說明
fangjian0423.github.io/2016/03/12/…android
java JVM虛擬機
blog.csdn.net/qq_41701956…git
Object類的equal和hashCode方法須要同時重寫,爲何? www.cnblogs.com/tiancai/p/9…
若是2個對象使用equals方法進行比較而且相同的話,那麼這2個對象的hashCode方法的值也必須相等。 違反這一點產生的後果就是若是一個stu1實例是Student(「fo」, 11),stu2實例是Student(「fo」, 11),那麼這2個實例是相等的,可是他們的hashCode不同,這樣是致使哈希表中都會存入stu1實例和stu2實例,可是實際狀況下,stu1和stu2是重複數據,只容許存在一條數據在哈希表中。因此這一點是很是重點的,再強調一下:若是2個對象的equals方法相等,那麼他們的hashCode值也必須相等,反之,若是2個對象hashCode值相等,可是equals不相等,這樣會影響性能,因此仍是建議2個方法都一塊兒重寫。github
HashMap原理,Hash衝突,併發集合,線程安全集合及實現原理 blog.csdn.net/ptsx0607/ar…面試
HashMap 和 HashTable 區別算法
HashCode 做用,如何重載hashCode方法數組
ArrayList與LinkList區別與聯繫緩存
GC機制安全
Java反射機制,Java代理模式
Synchronized原理
Volatile實現原理
死鎖的四個必要條件 blog.csdn.net/yangquanhui…
(1) 互斥條件:一個資源每次只能被一個進程使用。
(2) 佔有且等待:一個進程因請求資源而阻塞時,對已得到的資源保持不放。
(3)不可強行佔有:進程已得到的資源,在末使用完以前,不能強行剝奪。
(4) 循環等待條件:若干進程之間造成一種頭尾相接的循環等待資源關係 存在一個進程等待序列{P1,P2,...,Pn},其中P1等待P2所佔有的某一資源,P2等待P3所佔有的某一 源,......,而Pn等待P1所佔有的的某一資源,造成一個進程循環等待環。就像前面的過獨木橋問題,甲等待乙 佔有的橋面,而乙又等待甲佔有的橋面,從而彼此循環等待。
怎麼避免死鎖
對象鎖和類鎖是否會互相影響
方法鎖、對象鎖、類鎖的意義和區別
寫一個單例模式,如何作到線程安全(雙重加鎖)
Java鎖的種類: 公平鎖、樂觀鎖、互斥鎖、分段鎖、偏向鎖、自旋鎖等
ThreadLocal的原理和用法
ThreadPool的用法和示例 —— 線程池的實現原理
開啓線程的三種方式
wait()和sleep()的區別
join的用法
什麼致使線程阻塞?
線程如何關閉?
run()和start()方法區別
進程和線程的區別
int、char、long各佔多少字節數
引用類型
談談對java多態的理解
String、StringBuffer、StringBuilder區別
棧和隊列
經典問題:海量數據的處理 (10億個數中找出最大的10000個數 TOP K問題)
二叉樹遍歷(非遞歸)
查找樹中兩個節點的最低公共祖先
求二叉樹中節點之間的最大距離
基礎排序算法:重點 快排、歸併排序、堆排序(大根堆、小根堆)
String 轉 int
如何判斷一個單鏈表有環
鏈表翻轉
100 億個單詞,找出出現頻率最高的單詞。要求幾種方案
經常使用數據結構簡介
www.jianshu.com/p/fae032319… blog.fundebug.com/2018/08/27/…
數組和鏈表的區別 blog.csdn.net/qq_25806863…
實現LRU算法 www.jianshu.com/p/b49a11114…
求股票的最大利潤 blog.csdn.net/program_dev…
輸入字符串,輸出對應的整數形式 www.cnblogs.com/wangnanhui/…
反轉單向鏈表
blog.csdn.net/qq_26287435…
找出單向鏈表中倒數第K個節點,並刪除 (1:遍歷兩次 2:用兩個指針)
wiki.jikexueyuan.com/project/for…
檢查鏈表是否有環,如有環的話,求出環的入口和環的長度 blog.csdn.net/u011388550/…
兩個有序且無重複元素的整數數組,找出相同元素 www.kancloud.cn/maliming/le…
Android各個版本API的區別 mp.weixin.qq.com/s/uPKY372k1…
Activity-Window-View三者的差異 juejin.im/entry/59632…
Application生命週期
blog.csdn.net/maican666/a…
Android Activity生命週期
www.jianshu.com/p/fb44584da…
onStart()與onResume()有什麼區別?
Android Activity啓動模式
blog.csdn.net/linghu_java…
singleInstance和singleTask的應用場景 xiazdong.github.io/2015/03/08/…
service和activity怎麼進行數據交互
Fragment的生命週期
Android Service、IntentService,Service和組件間通訊
如何保證Service不被殺死?如何保證進程不被殺死?
Service的開啓方式
Android消息機制
www.jianshu.com/p/36a978b6c…
Looper.loop()爲何不會阻塞主線程
Handler、Thread和HandlerThread的差異
Android 多線程的實現:Thread、HandlerThread、AsyncTask、IntentService、RxJava
ActivityThread工做原理
RecyclerView與ListView(緩存原理,區別聯繫,優缺點)
View的繪製原理,自定義View,自定義ViewGroup
getWidth()方法和getMeasureWidth()區別呢?
Asset目錄與res目錄的區別
序列化serializable和parcelable的區別
ANR產生的緣由是什麼
Apk 打包流程梳理
Android 觸摸事件機制
APK瘦身
Android進程間通信 aidl
Android Activity啓動原理
Android AMS的瞭解
Android 進程間通信的原理
Android 模塊化 組件化 插件化 移動端架構的瞭解
Android 性能優化
各類原理,經典第三方庫源碼系列(glide,OKHTTP,EventBus等等)
出了技術相關的知識外,咱們還須要額外準備一些東西
如下幾篇關於寫Android面試的文章都寫的很好