CVTE安卓二面面經
一面:
1、Service兩種啟動方式有什麼區別?
2、binder機制瞭解嗎,說一下。怎麼確定客戶端呼叫的具體是哪一個方法?底層是怎麼處理的?
3、四種引用
4、GC回收演算法,為什麼要用分代收集演算法,假如有個大物件放不進Survivor區怎麼辦?分配擔保機制。
5、有了解過OKHttp的原始碼嗎,有什麼缺點?有用過其他的網路請求嗎?
6、activity生命週期,彈出一個dialog,activity的生命週期會變化嗎,那跳轉到一個不是全屏的activity呢?為什麼不一樣?
onStart和onResume有什麼區別?位於前臺和可見有什麼區別?
7、MVC解決什麼問題?那和MVP有什麼不一樣?
8、瞭解window嗎,那說說window是什麼東西,為什麼會有window?rootView有什麼關係。。。
9、你瞭解過哪些設計模式,最熟的是哪一種(感覺要跪)?說一種你認為最好的單例模式?為什麼靜態內部類的單例可以實現執行緒安全?
10、手寫生產者消費者模式,沒有要求。手寫反轉字串,不可以用現有的api
11、有了解過java執行緒安全的容器嗎?currentHashMap底層是怎麼實現執行緒安全的呢,和HashTable有什麼不一樣,使用的鎖是什麼鎖?
12、HashMap發生雜湊衝突時怎麼處理?你知道還有哪些解決雜湊衝突的方法?為什麼要用這種方法
13、你瞭解多執行緒同步嗎?synchronized和reentrantLock有什麼不同,瞭解reentrantLock的條件物件嗎?什麼情況需要使用?
14、廣播有哪些註冊方法?剛開機後沒有開啟app能收到靜態廣播嗎?什麼情況會收不到廣播?瞭解有序廣播嗎?
15、你專案中的socket是怎麼保持連線的?有了解過心跳包嗎?
16、activity的啟動模式,如何使用singleTask實現singleInstance?
17、自定義view有寫過嗎?
二面:
1、平時有看一些安卓的原始碼嗎?messageQueue底層是怎麼實現的?Looper有什麼作用?
2、專案有什麼架構設計嗎?Builder模式用在專案哪些場景?
3、binder池有了解嗎?onTransact()和*&&%¥#(聽不懂)
4、策略模式和狀態模式有什麼不同?(專案中用到)
5、職業規劃,想往哪個方向發展
6、自定義view需要注意什麼?如何實現自定義view的動畫?
7、記憶體抖動有了解嗎?如何排除?
8、效能優化方面有了解嗎?
9、有沒有學習kotlin和RxJava?
10、有看過哪些原始碼嗎?說一下。EventBus的粘性事件是怎麼處理的?
11、說一下ImageLoader的快取策略,LRUCache是怎麼實現的?
12、手寫一個棧,需要考慮執行緒同步和泛型
13、java設計的一些原則的理解,單一職責原則,開閉原則等
總體而言,就面試體驗而言,就面試體驗而言,是我面過最好的公司。。。一面問的問題比較多,先問專案,再問安卓,再問Java,多針對基礎。二面問的偏向專案優化。雖然很多問題答不上來,面試官還是很友好的。
Android移動網際網路技術:879078537