前言
本人畢業於非2十一、985一本,學的是計算機網絡,大一在一位師哥的引導下接觸了Android開發,隨着近一步的接觸,慢慢的喜歡上了Android開發。因而大二開始,我開始自學Android開發。程序員
大四的時候開始找實習工做, 由於喜歡Android開發,找的都是Android開發崗位,最後通過一段時間的面試,拿到了阿里的實習offer。面試
今天就分享一下個人阿里面經和麪試前的準備和學習方法,但願的想進大廠實習的同窗提供一些幫助。算法
Java基礎
- Java Object類方法
- HashMap原理,Hash衝突,併發集合,線程安全集合及實現原理
- HashMap 和 HashTable 區別
- HashCode 做用,如何重載hashCode方法
- ArrayList與LinkList區別與聯繫
- GC機制
- Java反射機制,Java代理模式
- Java泛型
- Synchronized原理
- Volatile實現原理
- 方法鎖、對象鎖、類鎖的意義和區別
- 線程同步的方法:Synchronized、lock、reentrantLock分析
- Java鎖的種類: 公平鎖、樂觀鎖、互斥鎖、分段鎖、偏向鎖、自旋鎖等
- ThreadLocal的原理和用法
- ThreadPool的用法和示例
- wait()和sleep()的區別
Java高階
- Java虛擬機,Java運行,Java GC機制(可達性分析法,引用計數法)
- Java對象的完整生命週期
- JVM內存模型
- 進程間通訊,線程間通訊
- JVM類加載機制
- Java引用類型
- 設計模式:除經常使用設計模式以外,特別的,反射機制,代理模式
- HTTP協議和HTTPS協議
- Socket協議,Socket實現長鏈接
- TCP和UDP協議
- HTTP協議中GET和POST的具體實現
- 序列化和反序列化
- 線程池的實現原理
- 數據庫基礎知識:多表查詢、索引、數據庫事務
數據結構及算法
數據結構
- 棧和隊列
- 數組和鏈表,自定義一個動態數組
- Hash表,及Hash衝突的解決
- 二叉樹
- B+ B-樹
- 基礎排序算法:重點 快排、歸併排序、堆排序(大根堆、小根堆)
- 快排的優化
- 二分查找與變種二分查找
- 哈夫曼樹、紅黑樹
- 字符串操做,字符串查找,KMP算法
- 圖的BFS、DFS、prim、Dijkstra算法(高階技能)
- 經典問題:海量數據的處理 (10億個數中找出最大的10000個數 TOP K問題)
算法
Android基礎
- Application生命週期
- Android Activity生命週期
- Android Service、IntentService,Service和組件間通訊
- Activity的onNewIntent
- Fragment的懶加載實現,參數傳遞與保存
- ContentProvider實例詳解
- BroadcastReceiver使用總結
- Android消息機制
- Binder機制,共享內存實現原理
- Android 事件分發機制
- Android 多線程的實現:Thread、HandlerThread、AsyncTask、IntentService、RxJava
- ActivityThread工做原理
- 嵌套滑動實現原理
- RecyclerView與ListView(緩存原理,區別聯繫,優缺點)
- View的繪製原理,自定義View,自定義ViewGroup
- View、SurfaceView 與 TextureView
- 主線程Looper.loop爲何不會形成死循環
- ViewPager的緩存實現
- requestLayout,invalidate,postInvalidate區別與聯繫
- AndroidP新特性
- Android兩種虛擬機
- ADB經常使用命令
- Asset目錄與res目錄的區別
- Android SQLite的使用入門
面試複習筆記:
這份資料我從春招開始,就會將各博客、論壇。網站上等優質的Android開發中高級面試題收集起來,而後全網尋找最優的解答方案。每一道面試題都是百分百的大廠面經真題+最優解答。包知識脈絡 + 諸多細節。 節省你們在網上搜索資料的時間來學習,也能夠分享給身邊好友一塊兒學習。 給文章留個小贊,就能夠免費領取啦~數據庫
戳我領取:藍色傳送門設計模式
《960頁Android開發筆記》數組

《1307頁Android開發面試寶典》緩存
包含了騰訊、百度、小米、阿里、樂視、美團、5八、獵豹、360、新浪、搜狐等一線互聯網公司面試被問到的題目。熟悉本文中列出的知識點會大大增長經過前兩輪技術面試的概率。安全

《507頁Android開發相關源碼解析》網絡
只要是程序員,無論是Java仍是Android,若是不去閱讀源碼,只看API文檔,那就只是停留於皮毛,這對咱們知識體系的創建和完備以及實戰技術的提高都是不利的。數據結構
真正最能鍛鍊能力的即是直接去閱讀源碼,不只限於閱讀各大系統源碼,還包括各類優秀的開源庫。