1. Android大廠面試經驗分享(OPPO,位元組,華為,阿里)
我是從小公司跳出來的,最終入職OPPO,說實話這段時間的經歷讓我深深地感受到,我們為跳槽做的一些臨時抱佛腳的提升跟那些大佬的沉澱比起來太渺小了。我們都知道找資料學習、刷面試題,但也許只能應付這一次的面試,後面還是會技術發愁,那些短時間背下來的東西遲早會忘掉, 大家還是做好長期提升自己的准備,好好沉澱的東西最後才是屬於自己的。
說說當時的面試過程,我是內推獲得的面試機會,很感謝當時幫我內推的兄弟,總共三輪面試,兩輪技術,一輪HR面,當天面試結束。
我10:10分到的公司,10:30開始面試,第一輪面試將近一個小時,聊的點我基本上都答得上來,自我感覺良好。然後面試官讓我等一下,他去叫他們老大來給我二面,我等了有二十幾分鍾吧,二面有一個多小時,這次問的比較深,有些地方答的有些嗑吧,總體來說我自己是滿意的。HR面約到下午了,整個流程下來每輪面試官都讓人感覺很不錯,我自己做的准備也讓我面試感覺下來很爽。
我把面試遇到過的以及自己學慣用到過相關內容都整理到一起了,方便自己進行復盤和後續的查漏補缺:
一、 java基礎
1.1 靜態內部類和非靜態內部類的比較
1.2 多態的理解與應用
1.3 java方法的多態性理解
1.4 java中介面和繼承的區別
1.5 線程池的好處,詳解,單例(絕對好記)
1.6 線程池的優點及其原理
1.7 線程池的優點(重點)
1.8 為什麼不推薦通過Executors直接創建線程池
1.9 不怕難之BlockingQueue及其實現
1.10 深入理解ReentrantLock與Condition
1.11 Java多線程:線程間通信之Lock
1.12 Synchronized 關鍵字原理
1.13 ReentrantLock原理
1.14 HashMap中的Hash沖突解決和擴容機制
1.14 Java並發
1.15 Java虛擬機
1.16 JVM常見面試題
1.17 JVM內存結構
1.18 類載入機制/雙親委託
二、 Android基礎
2.1 Activity知識點(必問)
2.2 Fragment知識點
2.3 Service知識點
2.4 Intent知識點
2.5 數據存儲
三、UI控制項篇
3.1 屏幕適配
3.2 主要控制項優化
3.3 事件分發與嵌套滾動
3.4 動態化頁面構建方案
四、網路通信篇
4.1 網路協議
五、架構設計篇
5.1 MVP架構設計
5.2 組件化架構
六、性能優化篇
6.1 啟動優化
6.2 內存優化
6.3 繪制優化
6.4 安裝包優化
七、源碼流程篇
7.1 開源庫源碼分析
7.2 Glide源碼分析
7.3 day 20 面試題:Glide面試題
7.4 聊一聊關於Glide在面試中的那些事
7.5 面試官:簡歷上如果寫Glide,請注意以下幾點…
7.6 Glide OOM問題解決方法匯總
7.7 LeakCanary源碼分析
7.8 OkHttp源碼分析
7.9 okhttp連接池復用機制
7.10 okhttp 流程和優化的實現
7.11 一篇讓你受用的okhttp分析
7.12 OkHttp面試之–OkHttp的整個非同步請求流程
7.13 OkHttp面試之–HttpEngine中的sendRequest方法詳解
7.14 OkHttp解析大總結
7.15 Okhttp任務隊列工作原理
7.16 Android高頻面試專題 - 架構篇(二)okhttp面試必知必會
7.17 Android 網路優化,使用 HTTPDNS 優化 DNS,從原理到 OkHttp 集成
7.18 Retrofit源碼分析
7.19 RxJava源碼分析
7.20 RxJava原理與源碼分析
7.21 RxJava如何進行線程切換的?
7.22 Rxjava內存泄漏防止方案——RxLifecycle,AutoDispose,RxLife框架
7.23 Tinker源碼分析
7.24 ARouter源碼分析
7.25 Android框架層源碼解析
7.26 演算法設計
八、新技術篇
8.1 實戰問題篇
九、面試篇
9.1 開源文檔
9.2 面試文獻
以上就是我的學習和面試積累,有自己面試經歷過的,也有整理的一些大廠面試題,篇幅有限,具體內容就不展示了,我已經整理成文檔了。
還是開頭說的,僅靠面試期間臨時抱佛腳和刷題對自身發展不是長久之計,做好長期提升的規劃,好好沉澱每一次的學習和面試經歷,把這些最終都轉化成屬於自己的東西才是實質上對自己最有用的。
2. Android面試:位元組飛書5輪面試Android Framework層的源碼就問了4輪!
說起位元組跳動的這次面試經歷,真的是現在都讓我感覺背脊發涼,簡直被面試官折磨的太難受了。雖然已經工作了三年,但是也只是純粹的在寫業務,對底層並沒有一個很深的認識,這次面試經歷直接的讓我感受到我和那些一線大廠開發之間的差距,說句實話,是真的很難受。
也不多說什麼了吧,我們還是來回顧一下我在位元組跳動的這次面試經歷。 一共是面了5輪,至於為什麼面了5輪的原因,可能是面試官還是想試試我的技術水平吧 。
雖然說最終還是沒能拿到offer,但是這次的面試經歷讓我更加直觀的了解了我和大廠Android開發之間的差距,算是收益頗豐吧 。
總體來講,一面還是答得不錯的,或許是面試官覺得小瞧了我,接下來的四輪面試我彷彿遭到了嚴打
最後嘮叨幾句,希望各位沒拿到offer的真的不要灰心,可能你之前所有的失敗都是你成功的墊腳石,我面掛的時候也曾經自閉過,但更多的是反思,如何調整自己的復習計劃。在復習的時候一定要有自己的強項,能把這個知識點理解的很透徹並且把相關的知識點拓展出去。另一方面就是讓面試官看到你對這個崗位的熱情,能夠自發性地去學習與崗位相關的東西,下面給大家分享一份我珍藏的《2022最新Android中高級面試題合集》質量非常搞,希望能對你有幫助!
內容概要 :包括 Handler、Activity相關、Fragment、service、布局優化、AsyncTask相關、Android 事件分發機制、 Binder、Android 高級必備 :AMS,WMS,PMS、Glide、 Android 組件化與插件化等面試題和技術棧!內容特點:條理清晰,含圖像化表示更加易懂。
Android Framework 開發雖然比較偏底層,圈子窄,但是能掌握一些原理的東西,可以觸類旁通,往應用層發展也可以。目前大公司的app開發都要基於模塊化、層次化、組件化、控制項化的思路來設計架構,而這一切的基礎都建立在Android Framework系統框架底層原理實現之上。
3. 騰訊大佬整理推薦《Android Framework 開發揭秘》突破面試!(附面試寶典)
隨著 Android 開發者越來越多,企業在篩選 Android 程序員時越來越看中一個程序員對於 Android 底層原理的理解和思考。
經常面試的人就知道,現在 Framework 算是面試必問知識點了,比如下面一些大廠面試題:
Framework 為開發應用程序提供了非常多的 API,通過調用特殊的 API 構造 APP,滿足業務上的需求。正因為有了 Framework 層,應用開發才能事半功倍,專注於業務邏輯實現。
這里給大家分享一份由 騰訊大佬整理推薦的《Android Framework 開發揭秘》以及《2022最新Android中高級面試題合集》。
這份1932頁的《2022Android中高級面試題匯總》是總結了2020-2021期間大廠面試中的高頻面試題匯總,其中包括騰訊、位元組、美團、阿里、網路…等一線互聯網大廠。
資料包含: Java基礎、Android基礎、UI控制項、網路通信、架構設計、性能優化、源碼流程…
想要深入學習了解 Framework ,突破面試難關,那麼這兩份《Android Framework 開發揭秘》《2022最新Android中高級面試題合集》一定不要錯過。
4. 已拿32k小米Android高級開發offer(面試題回顧)
到現在我入職也有一段時間了,這才有空梳理一下當時的面試題。簡單說下我的情況:這是一次比較平常的跳槽,不是什麼逆襲大廠的劇本,只是薪資有所漲幅。
個人經歷不詳說,面試題對大家來說可能更有參考性,本篇先整理小米的面試題,我前後也面了很多個大廠,有空把其他幾個大廠的面試題也總結一下。
Java基礎肯定是少不了要問的,這輪面試Kotlin相對來說是我這些面試中問得比較多的,所以說准備面試還是要面面俱到。
我有點佩服我的記憶力了。這部分涉及到更多的 源碼、原理和優化 方面的問題,Android高級開發需要具備一些什麼能力大家也應該有所衡量了。
最後給大家分享一份 2246頁 的 Android大廠高頻面試題解析大全 ,基本上把我的面試內容都涵蓋到了: Android、性能優化、Java、Kotlin、網路、插件化、熱修復、模塊化、組件化、增量更新、Gradle、圖片、Flutter等。
這份資料免費提供給大家復習,文末查看領取方式,搞定Android面試這一份肯定夠了。
第一章 Android相關 (源碼分析、性能優化、Framework等)
第二章 性能優化 (GC原理、布局優化、繪制優化、內存優化等)
第三章 Java相關 (四種線程池、JVM、內存管理、垃圾回收、引用等)
第四章 Kotlin相關 (延遲初始化、Reified、Extension Functions、函數等)
第五章 網路相關 (HTTP 知識體系、HttpDns 原理、TCP,UDP,HTTP,SOCKET 之間的區別等)
第六章 插件化&熱修復&模塊化&組件化&增量更新&Gradle
第七章 圖片相關 (圖片庫對比、LRUCache原理、圖片載入原理、Glide等)
第八章 Flutter相關 (Flutter原理、Flutter Hot Reload、Flutter 動態化 探索 、Flutter Platform Channel等)
需要這份資料的朋友私信我【面試題】就可以免費領取。
希望大家都可以把握住每一次自我提升的機會,把每一步都走踏實了,漲薪升職什麼的都會迎你而來。
也歡迎大家和我一起交流Android方面的事情。
5. 把大廠都面試一遍後,我總結了13條面試經驗和面試題(附答案)
近期大大小小面了十幾家公司,花了一點時間整理了14條面試經驗,希望能幫助到你。
1.面試前要認真准備,及時梳理
你會的和面試中你能講清楚完全是兩碼事。不是為了背知識點出去吹牛逼,而是要把自己會的梳理好思路,組織好語言。哪怕幾個月前才做過的項目,如果沒有做項目復盤,突然讓你講,恐怕未必所有細節都能記得清楚。
2.每面完一家一定要復盤
面試完把沒表達好的地方再打磨打磨,一些高頻問題的答案組織好提綱,尤其是關於項目的。現場的答案通常邏輯都會很混亂,筆者自己面到最後,依然感覺很難把項目說出亮點來,畢竟我前東家是外包公司,很多技術點沒機會做得深入。
3.簡歷不是一成不變的,要及時調整
基本每面一家都建議調整一下細節,應聘崗位不同,簡歷所呈現的重點也應不同,所以針對投遞的職位,簡歷要做不同程度的優化。比較心儀的崗位需要根據崗位描述有偏向性地單獨准備簡歷。這樣通過率才會更高,在面試中也會讓你過面試官更容易抓到你與該崗位的契合點。
4.不要把內推想的太神奇,除非你有夠硬的關系。
對大部分人而言,內推的作用就是過簡歷關,其他方面的作用我不太好評估,每個人的資源不一樣。你拿Offer了,內推人拿推薦獎金,你面掛了,推薦人也不會怎麼樣,打鐵還需自身硬,當然這只是自己的看法。
5.控制自己的面試節奏,否則可能會非常辛苦。
每個公司的面試節奏不一樣,可以提前找HR問清楚,比如阿里就是平均一個崗位要面一個月,而滴滴我當時早晨一面下午二面,2天後就三面了,進度很快。筆者面試中節奏安排基本是錯亂的,中間有幾天平均每天1.5個電話面,真的很考驗體能。建議綜合調研一下可以投的崗位,按照【保底】【滿意】【挑戰】三個檔拉開梯度投簡歷,畢竟你最後只能選一個,都投到一個檔次里意義不大。
6.謹慎面對各大招聘軟體上的邀約
招聘軟體上會有很多人問你要簡歷,他們並不是真的對你感興趣,只是群發消息,建議不要隨便給簡歷,很嚇人的。筆者自己第一個螞蟻金服的面試,就是招聘軟體里對方說「先看一下簡歷」,結果轉手就給內推了,當時沒有經驗,完全不知道面的什麼部門什麼要求,也不知道面試預約了還可以推掉,結果趕鴨子上架第一個面試一面就栽了,面評表上吃了個很難看的差評,很影響心情。
7.面試中對待不同的面試官要有好的心態
不要把人想的太壞,也不要把人想的太好,想讓你過的會幫你找亮點,讓你有闡述的機會,不想讓你過的就會盯著你不會的點一直問,隨時等著放大你任何一個漏洞,面試的過程中你會遇到各種各樣的人,當成一種閱歷,不卑不亢就好。給我印象比較深刻的是政采雲的技面官,花名堂主,面試之餘給了我很多忠告和指點,受益匪淺。
8.在面試過程中盡量不要話太多
每個面試官喜好不同,有的人希望你不知道的就說不知道,有的人希望聽你的思路和推測,我自己在面試中,有的面試官就說「不知道沒關系,你可以講講思路,或者如果讓你來做,你會怎麼做」,也有的面試官開場就說「我問的每個點你簡單陳述就行,如果我感興趣就會自己展開問」,在不明確對方偏好的情況下,建議話少點,說的越多漏洞越多,也容易碰到雷區引起反感。
9.簡歷盡量投給HR和你認識的搞技術的朋友
這樣即便最終沒有通過,也大概能知道問題出在哪,原則上面評結果是保密的,但是可以拜託對方針對自己的不足點提供一些關鍵信息,以便明確下一步努力的方向,面試從來都不是一次決定最終結果的事情,一次栽了,再面其他的就行,如果真的非常嚮往某個公司或崗位,過一兩年再來就行了,重點是你要先敢面。如果簡歷給到獵頭,那麼當你面對同等資歷的競爭者時可能就會被Pass,因為如果招了你,是需要給獵頭付費的,如果簡歷給了不認識的人內推,極有可能後續什麼消息都打聽不到,干著急。
10.我強烈建議大家去嘗試參加面試
定期去了解大廠的技術動向和對於你這個水平的面試者的評定條件,每個廠都不一樣,你的學校、專業技術、工作履歷、工作年限、項目管理經驗等等都可能被作為指標,尤其是像筆者這種半路出家的野路子碼農,千萬不要用網上那些經驗往自己身上套,差別太大了。很多人都會覺得自己「水平差」,感覺自己「啥都不會」,但是自己感覺自己差和面試中被人吊打完全是兩種感覺,後者雖然不好受,但能迫使你做出改變,走出舒適區。
11.面試是一場匹配游戲
不是你越牛逼結果就越理想,面試的關鍵詞是【匹配】。大多數面試者都是劣勢的一方,請對自己好點,通過了,告訴自己"運氣不錯,繼續努力,要對得起別人的賞識",沒過,也沒關系,告訴自己"運氣不太好,繼續努力就好,總有一天會有人賞識"。對面試中暴露出的技能短板要足夠重視,但對於結果,真的沒必要太較真,有時候公司的想法並沒有那麼復雜,就是想招個更年輕更便宜的而已。
12.大廠對於大齡程序員是有「把控」的,不管招聘方承不承認。
13.一定要做一個有亮點的程序員
無論是什麼,一定得有跟普通應聘者不一樣的地方,可能是業務梳理能力,資源協調能力,跨端開發,跨棧開發,或者某個專項的技術玩的很溜都可以,但一定得有,如果還沒有,那就開始培養一個。
你近期面試了嗎?歡迎在評論區一起討論,我這里整理的一些大廠面試資料(附答案)可免費提供,添加QQ群:1020139748 備注即可。