第一面
面試官看起來很年輕,感覺是一個剛畢業不久的小伙汁,聲音很青澀哈哈哈哈
開始面試的時候把我給問懵了,當時剛午覺睡醒,還沒緩過神
計算機網路部分:
1.http的一套流程是什么?
2.https發起連接的流程是什么?
3.http請求的請求頭中包含哪些欄位?(這里忘了不少欄位,只說了三四個,嗚嗚嗚)
4.一次http請求的結構是什么樣的?(這里因為網路的問題,聽了三遍,終于弄懂了面試官的意思,嗚嗚嗚)
作業系統:
1.能簡單說說執行緒和行程間的區別嗎?
2.行程間通訊的方式你知道有哪些嗎?
3.聽說過Messenger嗎?(知道,但是底層還是使用的AIDL+Handler的形式,AIDL底層還是使用的Binder驅動)
資料庫:
1.能簡單說一下資料庫如何修改一張表中的資料嗎?
2.給一張表增加一個欄位該用什么關鍵字?
Java:
1.能簡單說說Lock,synchronize,CAS之間的關系,以及具體實用的場景嗎?
2.能詳細說一下CAS是什么嗎?AtomicInteger是怎么實作執行緒安全的?
3.具體的鎖升級機制能簡單講講嗎?
4.能簡單說說代理模式嗎?動態代理和靜態代理有什么區別?
Android:
1.能簡單說一下事件分發機制嗎?
2.MeasureSpec.UNSPECIFIED是什么意思?如果外層的ViewGroup的模式是AT_MOST,內層是match_parent,那么最終傳遞到內層的模式是什么?(AT_MOST) ps:這個問題沒啥意義
(聽你說了View中有scrollTo,scrollBy,那么我們分析一個場景題)
3.場景題:首先有一個FrameLayout,其中嵌套著兩層View,我們在進行重寫onTouchEvent的時候,如何讓上層View滑動并且暴露出下層的View?(這里有一個坑,面試官說的scrollTo、scrollBy,我就在這倆上面思考怎么暴露出下層的View,最后突然想到可以通過事件來調整整個View的布局位置)
原始碼:
1.看過那些優秀的開源框架原始碼嗎?
2.知道那些原始碼相關的設計模式呢?
3.HashMap簡單說一下原理吧
二面:
二面是一個女面試官,年齡可能在40歲左右
設計模式:
1.熟悉那些設計模式呢?
2.動態代理底層是如何實作的?
3.講講Retrofit的動態代理吧
Java:
1.能簡單說說JVM記憶體模型的目的以及在記憶體中區分為哪些區域嗎?
2.記憶體回識訓制大致講講唄?
3.類加載機制完整細致的描述一下把
4.類加載器的雙親委派原則說一下吧?(這里有一個疑問,我說父子類加載器不是繼承關系,然后面試官說不太對,這里我有一點點疑問,還請大家告知一下)
5.能說一下Java .class檔案的結構嗎?
6.執行緒池的基本機制有了解嗎?非核心執行緒如何保證延遲結束?
7.為什么內部類會默認持有外部類的參考?
Android:
1.Handler訊息機制簡單說一下吧(延時的訊息是如何發送的?以及通過Looper.loop()是如何處理延時訊息的?)
2.為什么Handler會出現記憶體泄漏?
3.View中的post和handler的post有什么區別?(我說view中的handler是經過重寫的,會處理關于View的相關繪制事件,然后面試官說只回答對了一部分,我有些疑問,還有其他的區別嗎?)
4.有用到什么記憶體泄漏檢測的框架嗎?知道原理嗎?(就是上面所說的JVM記憶體回識訓制)
5.知道關于性能優化相關的嗎?能簡單講一下嗎?(布局,異步,過渡繪制)
6.能講一下Activity的啟動流程嗎?
7.聽你講到了行程間通訊,PackageManagerService和ActivityManagerService進行通信的方式是什么?
8.Binder驅動底層原理了解嗎?(mmap的記憶體地址映射)
9.Serializable和Parcable有什么區別?如何使用?
10.聽你說到了sp(SharedPreference),你知道sp能跨行程通訊嗎?
尾聲
最后,我再重復一次,如果你想成為一個優秀的 Android 開發人員,請集中精力,對基礎和重要的事情做深度研究,
對于很多初中級Android工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助, 整理的這些架構技術希望對Android開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有識訓與成長,其余的都不重要,希望讀者們能謹記這一點,
這里,筆者分享一份從架構哲學的層面來剖析的視頻及資料分享給大家梳理了多年的架構經驗,籌備近6個月最新錄制的,相信這份視頻能給你帶來不一樣的啟發、識訓,

Android進階學習資料庫
一共十個專題,包括了Android進階所有學習資料,Android進階視頻,Flutter,java基礎,kotlin,NDK模塊,計算機網路,資料結構與演算法,微信小程式,面試題決議,framework原始碼!

**本文已被[CODING開源專案:《Android學習筆記總結+移動架構視頻+大廠面試真題+專案實戰原始碼》](
)

收錄**
最后自我介紹一下,小編13年上海交大畢業,曾經在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現在,
深知大多數初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構動則近萬的學費,著實壓力不小,自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術停滯不前!
司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現在,
深知大多數初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報班學習,但對于培訓機構動則近萬的學費,著實壓力不小,自己不成體系的自學效果低效又漫長,而且極易碰到天花板技術停滯不前!
因此也是希望能夠幫助到想自學提升又不知道該從何學起的朋友,同時減輕大家的負擔,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/321069.html
標籤:其他
