十年Android開發經驗分享,助你斬獲大廠Offer!(系列面試篇)—還記得那些年一起刷過的面試題嗎?

前言

本人普通二本畢業去的一家小公司(自學java後轉Android),半年後去了某知名大廠, 後來繼續在大廠之間跳槽 。如今已娶妻生子 買房定居。這幾年經歷過面試,買房,學車,結婚,生子,職業沉澱。 也算是真正領悟到了編程到底有什麼意義!編程的意義這個話題留到以後再談。每年都有無數年輕的程序員,加入軟件行業。他們在學校裏學過編程,但是對這個行業的現實一無所知,我今天介紹這個行業的一些實際情況。這幾年自己在技術博客沉澱很多技術。其他方面也算成功,至少和同齡人和自己起點一樣本科生來說,作爲過來人有幾點說一下:

1 、 儀容儀表

很多人看到這個就會問了,難道我去面試還得穿的跟結婚一樣嗎?答案是"當然" 因爲這家公司很有可能就是你以後喫喝拉撒睡的另一個家,那你的這份工作就是你的"伴侶" 或許會比伴侶更加貼心,因爲它每個月會給你帶來"money" 還有什麼比發工資更高興的事情呢? 如果有 那一定是工資太少,所以一想到這,你還會穿着背心,腳踩人字拖,滿臉油脂和鬍渣去面試嘛,有面試的朋友們注意了 看完這篇文章就快去洗頭洗臉,好好收拾下自己,先給面試官一個美好的第一印象,別急! 面試之路纔剛剛開始。

2、言談舉止(自我介紹)

自我介紹是一門很大的學問,自我介紹可以非常直觀的讓面試官對你有一個初步的瞭解 一份好的自我介紹,能夠讓人瞬間對你產生興趣,(自己喜歡的人也是可以的哦),如果自我介紹做的一塌糊塗,可能你一番話說下來,面試官連你的名字都沒記住,那麼自我介紹到底要從那些方面說呢?

姓名年齡畢業學院家庭住址基本信息肯定要說吧,其次就是自己的優點缺點,有些小夥伴就是優點一大堆,說的缺點就啞口無言了,這其實會給面試官一個不能正確認識到自己的印象,所以大家要雨露均沾,不要害怕說出自己的缺點,但也不要誇大其詞,說自己的缺點是:愛打麻將,動不動就罵人,打人,小夥伴們,我們是去面試的,不是去吸引仇恨的哈,接下來是我們的言談舉止,要謙遜,低調,自己Android 技術非常牛逼的也不要太唯我獨尊了,畢竟天外有天,人外有人,技術沒那麼厲害的呢也不要太卑微了,對着面試官說:求求你給我一份工作吧!貌似也不太好。


3、專業技能(Android 開發)

上面都是我們的軟素質這一塊,最最最重要的還是要看咱們的硬實力,也就是我們的Android 開發技能的掌握,像咱們在社會上摸爬滾打多年的老將,所以面試官就會問一些Android 基礎、Java基礎、項目經驗、UI、性能優化、架構、框架等技術問題,Android面試中會問到的題,稍後我會整理一些。

當面試官看你簡歷中做過那些項目,面試官可能就會問你負責的項目模塊以及用到了哪些技術,並讓你詳細的分析自己在項目中體現的價值,也可以跟面試官探討一些在項目中遇到的專業技術,這樣會證明你項目的真實性和你喜歡學習上進的態度,讓面試官對你的印象更深。

還記得那些年一起刷過的面試題嗎?

公司1面試

1.java有什麼特性,繼承有什麼用處,多態有什麼用處
2.反射是什麼,在哪裏用到,怎麼利用反射創建一個對象
3.代理模式與裝飾模式的區別,手寫一個靜態代理,一個動態代理
4.對象加載的過程,屬性先加載還是方法先加載
5.垃圾回收機制與jvm結構
6.自定義View,事件分發機制講一講
7.http與https有什麼區別
8.Activity啓動模式,以及各啓動模式生命週期問題
9.靜態方法,靜態對象爲什麼不能繼承
10.Activity怎麼啓動Service,Activity與Service交互,Service與Thread的區別
11.介紹一下android動畫
12.Launcher啓動App的流程,中間有幾種跨進程通信(socket)
13.Handler通信,Binder通信
14.你碰到過什麼內存泄漏,怎麼處理
15.RXJava怎麼切換線程
16.Fragment hide show生命週期
17.平常有用到什麼鎖,synchronized底層原理是什麼

公司2

1.簡單描述下Handler,Handler是怎麼切換線程的,Handler同步屏障
2.Glide的緩存,有用過Glide的什麼深入的API,自定義model是在Glide的什麼階段
3.講講mvc,mvp模式,presenter內存泄漏的問題
4.ANR瞭解過嗎?有沒有實際的ANR定位問題的經歷
5.性能優化你做過哪些?
6.有什麼實際解決UI卡頓優化的經歷
7.有做過什麼Bitmap優化的實際經驗
8.項目搭建過程中有什麼經驗,有用到什麼gradle腳本,分包有做什麼操作
9.組件化有詳細瞭解過嗎?ARouter詳細原理
10.講一下事件分發機制,RecyclerView是怎麼處理內部ViewClick衝突的
11.mainfest中配置LargeHeap,真的能分配到大內存嗎?

公司3

1.一個大致有序的數組如何排序,最快時間複雜度
2.如果叫你實現,你會怎樣實現一個多主題的效果
3.如何自定義實現一個FlexLayout
4.tinker的原理是什麼,還用過什麼熱修復框架,robust的原理是什麼?
5.說說你對註解的瞭解,是怎麼解析的
6.synchronized是公平鎖還是非公平鎖,ReteranLock是公平鎖嗎?是怎麼實現的
7.泛型是怎麼解析的,比如在retrofit中的泛型是怎麼解析的
8.mvp與mvvm的區別,mvvm怎麼更新UI,databinding用得多嗎,databinding的原理?
9.kotlin 的原理?
10.在項目中有直接使用tcp,socket來發送消息嗎
11.如何在網絡框架裏直接避免內存泄漏,不需要在presenter中釋放訂閱
12.生命週期都是通過什麼調用的?有用過AIDL嗎?
13.講一下RecyclerView的緩存機制,滑動10個,再滑回去,會有幾個執行onBindView
14.如何實現RecyclerView的局部更新,用過payload嗎,notifyItemChange方法中的參數?
15.講講LinkedHashMap的數據結構
16.put post有什麼區別
17.A Activity打開B Activity的生命週期變化,會有什麼方法打斷嗎?
18.Fragment hide show生命週期變化
19.Fragment replace生命週期變化

公司3(二面)

1.爲什麼考慮換工作
2.屏幕適配做過什麼工作?
3.你們網絡框架用的什麼?爲什麼?
4.如果讓你來開發B站的一個頁面,哪一個頁面可以很快入手
5.性能優化你做過什麼工作?
6.h5與native通信你做過什麼工作?
7.插件化的主要優點和缺點是什麼?
8.你覺得B站目前的APP有什麼問題?
9.如果產品要求你開發一個音頻播放功能,你會怎麼着手?預計會有什麼坑?
10.ViewPager切換Fragment什麼最耗時?
11.線程間同步的方法
12.鎖之間的區別

公司3(三面)

1.介紹一下你自已和項目
2.說說爲什麼考慮離職
3.說說對你們原來公司的印象
4.爲什麼想來B站?你在B站上常常在看什麼?
5.期望薪資是多少?
6.你對搬到上海有什麼想法?

尾聲

開發是需要一定的基礎的,我是10年開始進入Android這行的,在這期間經歷了Android的鼎盛時期,和所謂的Android”涼了“。中間當然也有着,不可說的心酸,看着身邊朋友,同事一個個轉前端,換行業,其實當時我的心也有過猶豫,但是我還是堅持下來了,這次的疫情就是一個好的機會,大浪淘沙,優勝劣汰。再等等,說不定下一個黃金浪潮就被你等到了。

這是我在這行工作十幾年積累的一些資料,如果還想繼續在這行業走下去的,或者現在打算跳槽,可以私信【學習】我願意免費分享給大家。

面經整理在了我的【GitHub】需要的可以點擊查看獲取!(還有一些我的學習資源路線)

  • 330頁 PDF Android核心筆記
  • 幾十套阿里 、字節跳動、騰訊、華爲、美團等公司2019-2020年的面試題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章