如何準備Android的面試,結合我之前面試和面試官的經驗,目前我梳理了一些基本的知識和準備,
首先,自己要對整個面試要考察的內容要有比較清晰的結構,
下面是整個思維導圖:

我們主要分為2大塊
1.基礎知識
基礎知識主要包括
1.Java,Kotlin的基本語言,
-
面向物件的基本思想
-
內部類:內部類的分類、應用場景、內部類編譯成class后是怎么樣的,
-
抽象類 & 介面:區別、應用場景,
-
注解:注解的基本概念、分類、編譯時注解 & 運行時注解,
-
記憶體模型,
-
垃圾回收,
-
類加載的程序,
-
泛型:分類、通配符 & 上下邊界、泛型擦除,
-
反射:使用,
-
多執行緒,執行緒池,
-
Kotlin的優點,協程,
2.Android基礎知識
-
Dalvik、Art虛擬機
-
Activity:生命周期、launchMode,
-
Fragment:生命周期、懶加載、兩種Adapter之間的區別,
-
BroadcastReceiver:基本概念、廣播分類、權限,
-
Service:生命周期、onStartCommand的回傳值、startService和bindService的區別、相同行程 & 不同行程的互動、IntentService實作原理,
-
重要的工具類 & 原始碼實作:AsyncTask、HandlerThread、Handler、IntentService、LruCache、LinkedHashMap、SparseArray,
-
RecyclerView:快取原理、和ListView的對比、Adapter如何適配多種layout,
-
存盤:資料庫升級 & 優化、ContentProvider,SharePreference,
-
SDK版本升級的兼容問題,
-
Android的權限管理機制,
3.資料結構
-
陣列,鏈表,
-
堆疊 Stack
-
佇列 Queue
-
鏈表 Linked List
-
陣列 Array
-
哈希表 Hash Table
-
二叉樹 Binary Tree
-
堆 Heap
-
并查集 Union Find
-
字典樹 Trie
4.演算法
- 二分搜索 Binary Search
- 分治 Divide Conquer
- 寬度優先搜索 Breadth First Search
- 深度優先搜索 Depth First Search
- 回溯法 Backtracking
- 雙指標 Two Pointers
- 動態規劃 Dynamic Programming
- 掃描線 Scan-line algorithm
- 快排 Quick Sort
- leetCode,劍指Offer里刷題
5.網路
- 網路分層模型,TCP/UDP,HTTP/HTTPS
6.設計模式
按照23種網路模型、三個分類進行總結,每種設計模式包含以下三個方面,至少要準備常用的幾個:
基本概念:UML圖、簡單例子、應用場景、優勢 & 劣勢,
Android原始碼中的實作
專案中的應用
7.其他
如:
-
跨平臺:RN,Weex,Flutter
-
開源庫:OKHttp,Retrofit,Glide
-
組件化,插件化,Gradle
2.專案經驗
1.自我介紹
通常面試一開始,面試官就會讓我們先自我介紹,
自我介紹這部分,邏輯清晰,有條理最重要,
之前作業的公司、崗位及作業方向,
團隊構成,在團隊中的位置及承擔的責任,
為團隊做出的主要貢獻,對于這部分涉及到的 專案經歷以及延伸出的知識點 一定要重點準備,
2.專案經驗
把覺得做的有亮點的東西挑出來,從四個方面來準備:
- 功能模塊的實作
- 達到了什么效果
- 遇到了什么問題,是如何解決的
- 涉及到的相關知識點
專案經驗和知識點其實是一個雙向的程序,要試圖去找到它們之間的聯系:
- 談到專案經驗的時候,可以說:做完 xx 之后,我還去了解了一下 yy 背后的原理,xxx,這里體現的是你是否有求知欲 ,
- 談到知識點的時候,可以說:yy 的原理是這樣的,在 xx 專案中我是如何應用它來解決問題的,這里體現的是你是否具備把知識付諸實踐的能力,
3.解決問題
通常面試官會問你在平時開發程序中有遇到什么比較棘手的問題么,以及如何去解決的
- 遇到問題
- 分析程序
- 解決方案
- 結果
更多Android和代碼相關資訊,請掃描下方二維碼

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/299373.html
標籤:其他
