
寫在開頭
筆者16年于長沙一個普通二本,畢業后去了滿地都是機會的深圳,第一份作業是一家外包公司,主要業務是電商和電子支付資訊安全方面的,一年后跳槽到華潤旗下一個子公司做金融,至今已作業4年,大家都知道,對于跟我一樣沒有名校背景,也沒有大廠出身的程式員來說,面試唯一的加分項就只有某一方面的技術深度了,所以我也建議各位小伙伴也跟我一樣,選擇一個自己感興趣的,或者比較自信的方向,不斷的鉆研深入,
眾所周知,2020年的冬天非常煎熬,疫情肆虐,大批的互聯網公司都在裁員甚至倒閉,年后的金三銀四跳槽季競爭愈發激烈,崗位需求急劇減少,求職者一面難求,能找到心儀offer的人就更少了,所以我并沒有在疫情的風波中著急去跳槽找作業,而是一邊觀望,一邊收集面試素材和面試真題,沉淀自己,提高自己的核心競爭力,
在剛過去的金九銀十跳槽季,國內疫情已基本 穩定,經濟復蘇后,面試壓力也就不那么大了,我開始投簡歷,我投遞簡歷的順序是按小公司—>大公司的套路來的,深圳的小公司非常多,中大型公司比較少,因此,在這一個多月的面試歷程中,我估算了一下,大概面了6家小公司,2家中型公司和1家大公司,一般我去面比較大的公司之前,我都會先面一兩家小公司預熱一下,
以下是面試中被問到的一些問題
基礎:
1.描述一下Activity 生命周期?
2.A Activity 打開 B Activity 時都有哪些生命周期回呼?
3.Activity的啟動模式分別說一下
4.如何保存Activity的狀態或者(Activiy 重啟怎么保存資料?)
5.橫豎屏切換時Activity的生命周期
6.onStart,onStop和onResume,onPause的區別?
7.橫豎屏切換時的生命周期?
8.Android中的Context, Activity,Appliction有什么區別?
9.Context是什么?,一個應用有多少個Context
10.Service是否在main thread中執行, service里面是否能執行耗時的操作?
11.Android應用程式啟動程序
12.如何保證Service不被殺死?
13.onActivityResult 在哪兩個生命周期之間回呼?
14.Fragment的生命周期?
15.Activity和Fragment的區別?
16.簡述下Acitivty任務堆疊和使用方法
17.請描述一下BroadcastReceiver
18.BroadCastReceiver的生命周期
19.什么是Service?Service的生命周期?
20.Service的啟動方式?如果啟動方式交織在一起的話,會出現什么情況?
21.怎么在Service中創建Dialog對話框
22.Service和Thread的區別?
23.ActivityManagerService了解嗎?有什么作用?
24.廣播的兩種注冊方式有什么區別?
25.廣播發送和接收的步驟是什么?原理了解嗎?
26.ContentProvider 是如何實作資料共享的?
27.activity的startActivity和context的startActivity區別
28.為什么要用ContentProvider?它和sql的實作上有什么差別?
29.ListView如何優化?(復用,滑動流暢等)
30.在什么情況下BroadcastReceiver接收不到廣播?
…
Android 中高級
1.TCP的三次握手和四次揮手,為什么不是兩次握手?為什么揮手多一次呢?
2.如何對Android應用進行性能分析
3.Devik行程,linux行程,執行緒的區別
4.android應用對記憶體是如何限制的?我們應該如何合理使用記憶體?
5.數字簽名的原理
6.Android 原始碼中常見的設計模式以及自己在開發中常用的設計模式
7.Android與 js 是如何互動的
8.網頁中輸入url,到渲染整個界面的整個程序,以及中間用了什么協議?
9.說一下handler機制?
10.子執行緒如何使用 Handler?
11.說一下你對Handler中ThreadLocal的理解?
12.主執行緒的 Looper 什么時候創建的?ActivityThread 的 main 什么時候呼叫?
13.Handler中有Loop死回圈,為什么沒有阻塞主執行緒,原理是什么
14.如何優化自定義View
15.如何解決View的事件沖突?舉個開發中遇到的例子?
16.網路請求快取處理,okhttp如何處理網路快取的?
17.WebSocket與socket的區別?
18.handler postDelay這個延遲是怎么實作的?
19.hashcode()和 equals()的作用、區別、聯系?
20.Handler、Looper、MessageQueue、Thread關系?
21.Hashmap如何解決散列碰撞(必問)?
22.Hashmap底層為什么是執行緒不安全的?
23.RecyclerView的ItemView層級過深怎么優化?
24.怎么設計Android執行緒間通信?
25.Bitmap JPG區別 影像處理:JPG、PNG及BMP的區別?
26.廣播(全域 本地區別)
27.onSaveInstanceState onRestoreInstanceState區別,呼叫時機
28.Serializable與Parcable的區別?
29.是否了解SurfaceView,它是什么?他的繼承方式是什么?他與View的區別(從原始碼角度,如加載,繪制等),
30.說下冷啟動與熱啟動是什么,區別,如何優化,使用場景等,
面試題集和答案在文末
下面我來結合我的面試經歷來談談不同公司級別的面試難度,
小公司(0-200人)
一般只要你收到這型別公司的面試邀請,只要你能把自己做過的專案架構,專案重難點說清楚,還有一些Android基礎知識稍微扎實一點,然后你稍微準備一兩個深一點的技術點,什么GC機制、基本的熱修復原理說個10分鐘,offer妥妥的,個別公司可能會考一些簡單的演算法題和智力題,比如冒泡、查找等等,在深圳這型別的公司三年安卓的價位一般在12-15這個區間,個別有錢的可能上限可以到18,一般都是15左右,至于面試題太常規,這里我就不多說了,想要看面試題和詳細答案的可以直接看總結部分,
中型公司(200-1000人)
這類公司我面的其實也不是很多,深圳面試那家BL,做外匯金融的(ps:金融業務相關的公司都比較有錢,如果面試程序中面試官表現出對你有興趣,聊薪資的時候你就可以大膽要)我去面試的時候,公司應該是在擴招階段,面試的人很多,問的問題比較廣泛,Java、Android、演算法、框架都有涉及到,雖然問的都比較基礎,但是我回答的都會比他問的更深入一點,也許是對我比較有好感,聊了半個多小時后,他叫我稍等一下,然后去叫來了他們的Team Leader,然后問了一些事件分發和繪制流程的細節問題,還問了一些binder的原理性問題,我…基本上能答出來,然后leader就直接問我,期望薪資是多少(一般技術面試官直接問你這個問題了,也就代表這份offer已經穩了)我說:22K,leader笑著說了句:好,說下周會給我答復,
后來也確實收到了答復,但是答復說22k給不了,18k能不能來入職,然后…就沒有然后了,
大型公司(5000人以上)
騰訊
一面之后就沒有音訊了,所以沒有什么發言權…
面試問的跟其他小公司一樣從基礎問起,但面試官會一步一步往深的問,直到你答不出來為止,然后下一個點 ,框架、原理性問題和性能優化方面的作業經驗是比較注重的,也不覺得是自己答的太爛,只能說面試者中優秀的人太多,自己不夠亮眼吧
上海嗶哩嗶哩(B站)
B站一面
1.自我介紹
2.treemap、紅黑樹、完全平衡二叉樹
3.快速排序和插入排序
4.個大致有序的陣列如何排序,最快時間復雜度
5.如何自定義實作一個FlexLayout
6.RecyclerView的回收復用機制
7.如何實作RecyclerView的區域更新
8.說說對泛型的了解,Retrofit中的泛型是怎么決議的
9.說說對binder機制的了解
10.行程的狀態,執行緒的狀態,兩者有區別嗎
11.synchronized鎖住物件的理解
12.Fragment replace生命周期變化
13.TCP和UDP有什么區別? 講講招手揮手程序
14.用過C++開發嗎
15.Dalvik和Hotspot虛擬機了解嗎?有什么區別?
B站二面
1.說自己做過最滿意的專案
2.性能優化你做過哪些作業
3.螢屏適配做過哪些作業
4.遇到過哪些坑(困難點),是怎么解決的
5.如果要你來開發B站的一個頁面,哪一個頁面可以很快入手
6.用過哪些框架?MVVM?Jetpack有入手嗎?
7.用過哪些開源庫
6.熱修復、插件化都用過,遇到過哪些坑?可以講講原理嗎
7.為什么想來B站,看哪種視頻多一點,點贊多還是白嫖多
8.你覺得B站APP有哪些可以優化的地方
面試B站可以說純粹是因為興趣吧,大學時期就一直用B站的APP,學習娛樂都是非常不錯的地方,因為要去杭州面阿里,所以在上海朋友那里玩兩天,順便面阿里之前試試B站預熱一下,一面二面是緊接著面的,邀請我三面的時候,我已經離開上海去了杭州,就沒有后文了,
螞蟻金服
實話實說,螞蟻金服是我內推面試的,之前投過簡歷,但是沒有收到面試,
這次面試難度總的來說中等偏上,面試程序跟騰訊的差不多,也是從基礎往深處問,問到你答不出來為止,還問了一些安全性問題,因為我前幾年的作業也是做金融的,所以相對來說比較輕松些,也正因如此才來了螞蟻金服,其他注重的就是架構技術,設計思想,還有第三方庫的一些掌握使用這些,
技術面試過后,hr會跟你談薪資,眾所周知,阿里的福利待遇是很好的,月薪18k,也算不錯的,
期間也內推面試過百度、華為、位元組、美團等公司,但是百度和華為對學歷都有較高的要求,所以并沒有拿到面試機會,位元組、美團傾向于招5年以上的技術專家,所以也沒有成功,
面試復習筆記:
這份資料我從2020年春招開始,就會將各博客、論壇,網站上等優質的Android開發中高級面試題收集起來,然后全網尋找最優的解答方案,每一道面試題都是百分百的大廠面經真題+最優解答,包知識脈絡 + 諸多細節,節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習,
由于篇幅原因,下面以截圖展示部分內容,如有需要以下完整學習筆記PDF,可以點贊+評論支持下打工人老弟,點擊這里即可免費自取!
正文總共分為6個部分:
Java 基礎(★★)
Java 高級(★★)
Android 基礎(★★★)
Android 高級(★★★)
Android 專案(★★★)
專案面試常見問題(★★★)
一、Java 基礎(★★)
面向物件思想
多型
例外處理
資料型別
Java 的 IO
集合
Java 多執行緒

Java 高級(★★)
Java 中的反射
Java 中的動態代理
Java 中的設計模式&回識訓制
Java 的類加載器

Android 基礎(★★★)
Android 基本常識
Activity
Service
BroadCastReceiver
ContentProvider&資料庫

Android 中的布局
ListView
JNI & NDK
Android 中的網路訪問
Intent
Fragment

Android 高級(★★★)
Android 性能優化
Android 螢屏適配
AIDL
自定義控制元件
Android 中的事件處理
Android 簽名
Android 中的影片
網路協議
其他

專案面試常見問題(★★★)
- 開發周期
- 專案中遇到的難題
- 專案中最大的識訓
- 專案是如何上線的
- 專案是如何盈利的
- 繪制專案架構圖
- 專案開發流程
- 你在專案中的角色
- 你負責專案中的哪些模塊
- 講講你負責模塊的具體實作
- 專案中都用到了哪些第三發框架
- 有沒有自己寫過框架
- 業余時間你是如何提高自己(學習)的
- 有沒有自己的技術 blog
- 你的職業規劃
- 為什么離職
- 為什么選擇我們公司
- 說說你們專案的亮點和不足
- 你們的專案是如何保持風格一致的
- 專案架構是如何搭建的
- 螢屏適配是如何解決的
- 都看過哪些原始碼
- 專案版本是如何升級的
- 用的什么版本控制工具
- 你能獨立開發嗎
- App 跟服務器是如何互動的
- 需求檔案寫過嗎
- 介面檔案寫過嗎
- 云服務器都用過哪些
- 第三方平臺都用過哪些
簡歷+社招解答+經典HR面試決議
以上是整理總結的Android中高級面試遇到的真題決議,希望對大家有幫助;同時很多人經常也會遇到很多關于簡歷制作,職業困惑、HR經典面試問題回答等有關面試的問題,同樣我也搜集整理了全套簡歷制作、金三銀四社招困惑、HR面試等問題決議,有疑問,可以提供專業的解答,

對于Android開發的朋友來說應該是最全面最完整的面試資料,為了更好地整理每個模塊,我參考了很多網上的優質博文和專案,力求不漏掉每一個知識點,很多朋友靠著這些內容進行復習,拿到了BATJ等大廠的offer,這個資料也已經幫助了很多的安卓開發者,希望也能幫助到你,
由于篇幅原因,如有需要以上完整學習筆記PDF,可以點贊+評論支持下打工人老弟,點擊這里免費自取!
感謝您閱讀這篇文章,如果可以收到您的點贊,那是將使我非常榮幸,希望我們可以成為朋友,一起分享交流Android技術,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/255930.html
標籤:其他
上一篇:作業出現瓶頸,學習效率下降?通學這份Android進階知識體系,從入門到高級只是時間問題!
下一篇:二叉樹遍歷
