Android 面試總結【中級】-2018
阿新 • • 發佈:2019-01-30
從畢業至今經歷了兩家公司,都是比較小的創業型公司。目前因為某些因素不得投入到轟轟烈烈的求職大軍中來。這次求職的目標是中大型公司,加之時間只有一個月不到,因此面試經歷不算豐富。不過還是記錄下來以供參考,順便算是一個總結吧。
這裡只對問題做一些記錄,具體答案就不公佈了,才疏學淺以免誤導。
Java 相關
這一部分主要是一些 Java 方面的知識。面試 Android 免不了的會被問到 Java 的東西。
- Java 三大特性
- Java中==和equals和hashCode的區別
- String、StringBuffer、StringBuilder區別
- 對 String 的理解
- 成員內部類、靜態內部類、區域性內部類和匿名內部類的理解,以及專案中的應用
- 泛型中 extends 和 super 的區別
- 泛型的原理
- 序列化的方式及區別
- 一個 Integer 物件在記憶體中佔多少個位元組
- Java 的異常體系
- 多型的機制
- 反射機制
- 類載入過程
Android 相關
- 四大元件
- Activity Fragment 生命週期
- Activity 各種切換間的生命週期呼叫過程
- Activity 啟動模式及應用場景
- Activity 和 Service 之間的通訊方式
- 跨程序通訊都有那些方式
- 資料庫,以及資料庫升級
- 自定義 View 相關的東西
- 事件分發機制
- Activity-Window-View三者的關係
- IntentService 的原理
- AsyncTask 的原理
- Activity 的啟動
- Handler 的原理
- Handler 使用過程中可能出現那些問題,及解決辦法
- ScrollView 的原理
- 對Bitmap 的理解
- RecycleView/ListView 優化
- gradle 在打包過程中是怎麼執行的
- Library 和 主工程的 gradle 的區別
Kotlin
關於 Kotin 這個被問到的比較少,但是現在越來越多公司開始使用,所以最好還是做一定的瞭解。
- 高階函式
- 類擴充套件
- 對 Kotlin 的看法(使用心得等)
一些常用三方庫、框架等
這個也是被問到的比較多的內容,一般都是問原理。
- 開發中都用到了那些三方庫
- RxJava 的使用及原理
- Glide 的原理
- Retrofit 的原理
資料結構
包括一些常用集合的原理等問題,我把它們劃分為資料結構相關的知識
- HashMap 的原理(初始化、擴容、put操作等)
- HashMap 和 HashTable 的區別,哪個是執行緒安全的
- ArrayList 的原理
- ArrayList 和 LinkedList 的區別
- TreeMap 的瞭解
- SpareArray 的原理
- 連結串列(要求手寫一個連結串列結構)
- 平衡二叉樹的瞭解
- 二叉樹的遍歷(前序、中序、後序)
執行緒相關
多執行緒其實在面試中是被問到的比較多的,不過翻來覆去就這幾個問題
- run 和 start 的區別
- 怎麼啟動多執行緒
- 執行緒池都有哪些,以及他們的區別、原理等
- 執行緒是什麼時候結束的
- 如何結束掉一個執行緒,如果當前執行緒正在被阻塞,怎麼結束掉
- Thread 和 Runnable 的區別
- 執行緒同步機制
- 鎖機制
演算法
演算法這一塊被問到的不是太多,不過最好做相應的瞭解並由一定的準備。
- 排序演算法有哪些
- 氣泡排序的時間複雜度
- 要求對一組學生成績做排序,並寫出演算法的時間複雜度
- 1, 1, 2, 3, 5, 8, 13, 21, 34, 55… 的規律,並手寫演算法(斐波那契數列)
- 反轉一個單鏈表
網路相關
網路這一塊被問到的也不算太多,都是比較簡單的問題。
- Http 請求的方式都有哪些
- GET 請求的引數有什麼要注意的
- GET 請求的引數長度限制
- POST 請求的型別有哪些
主觀問題
這裡面主要是聊一些主觀性的東西,不過個人認為算是比較重要的東西。
- 如果讓你封裝一個圖片載入庫,你都會考慮哪些方面的問題
- 如果一個頁面多次進入越來越卡,你會考慮到那些方面的問題
- 最近開發中遇到的認為比較有價值的問題
- 你認為你做的專案中有哪些比較有代表性的技術
- 閒暇時間都幹嘛?
- 平時有看一些技術文章、書籍麼?你認為對你實際開發的幫助有哪些
- 搞了這麼久開發,你認為自己有哪些亮點
其他
- git 的 Rebase 和 Merge 的區別
以上就是我在近一個月面試過程中遇到的問題,僅靠個人之力肯定不夠全面。不過程式設計師崇尚開源,這裡也是拿出來和大家分享。