被辭退後我一週面試了13家公司,想給你們分享這個收穫

被辭退後我一週面試了13家公司,想給你們分享這個收穫

2019 年對我來說是最幸運的一年,在這一年我多了一個「小情人」。然而,剛忙完回到公司的第二週,我接到了最殘酷的通知,公司經濟狀況不佳 —— 裁員!

雖然可以選擇降薪留下來,但是社保公積金最低,還需要996,無奈只好選告別了待了三年之久的 xxx,沒有 n+1,沒有 xxx,mmp。
由於離職時間點比較尷尬,馬上就是中秋節,剛好可以放鬆下回家陪陪家人。

中秋過後,嘗試投了幾份簡歷,但是效果不太好,面試機會也不多,可能是由於馬上就是國慶長假的緣故(也只能這樣安慰下自己)。

下面是我面試全部之後整理的面試題,把一些重要的面試題給記了下來,有一些已經忘記不過不礙事,是一些比較簡單大家都能答上來的,希望這些面試題能給之後面試的朋友們一點幫助。

注意文末的準備與建議,還有整理好的面試PDF文檔分享~

優貝在線

  • Android 項目中 asset 目錄和 res 目錄有什麼區別
  • 面向對象的特徵,並舉例說明面向對象的過程
  • 如何結束一個正在運行的線程
  • 簡述 MVC 和 MVP,並說一下 MVP 的優點
  • 如何獲取某個 View 的大小並動態改變 View 的大小
  • join()、wait()、interrupt()
  • 二維數組旋轉
  • 有一羣人A與B有關係,B與C有關係...分成兩隊,讓彼此都有關係

這是一個神奇的公司,只怪自己太菜筆試都沒有過,出師不利啊。然而奇怪的是國慶後,該公司的HR找了我不下3次。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

三節課

  • String、StringBuilder、StringBuffer 區別
  • ArrayMap、HashMap、SparseArray 原理
  • Fragment 添加方式,add、replace、show 區別
  • volatile 關鍵字作用
  • Binder 機制
  • HTTP 版本之間區別
  • invalidate()、requestLayout() 區別
  • View 繪製流程
  • 事件分發機制
  • 渲染優化
  • ArrayList 怎麼實現線程安全

必要商城

  • Android 線程間通訊方式有哪些?
  • 類B繼承A,A、B兩個類中都有靜態變量、成員變量、靜態代碼塊、構造方法執行順序是什麼?
  • Java代碼執行時內存狀況
  • Activity生命週期其他函數
  • View什麼時候繪製完成?
  • 如何獲取一個View的尺寸?

展心展力

  • Handler 機制,一個線程幾個 Looper,幾個 Handler,Looper 如何確定是哪個 Handler?
  • 內存溢出、內存泄漏的關係
  • volatile、synchronized關鍵字的區別
  • 垃圾回收機制,垃圾回收算法優缺點
  • Java內存模型的理解
  • HashMap實現原理,如何計算key的index,存儲方式
  • 一個無限單向鏈表如何計算長度,如果有環如何計算長度
  • RelativeLayout與LinerLayout的區別
  • View繪製原理
  • 事件分發機制,Activity怎麼處理的

團車網

  • 自定義 View 流程
  • View 繪製原理
  • 事件分發機制
  • AMS、WMS
  • Handler 機制
  • JMM
  • 鎖機制
  • AQS
  • 內存優化怎麼優化
  • 項目中遇到的最大的問題是什麼?怎麼解決的
  • 如果遇到項目進度無法推進,你怎麼做的
  • 你對近五年的規劃

某課

  • Handler postDelay() 然後finish當前Activity會怎麼樣?
  • View 繪製流程
  • invalidate()、postInvalidate()、requestLayout()
  • Tinker 爲什麼需要重啓
  • volatile、synchronized
  • Java內存模型

這是我迄今體驗最差的面試沒有之一,面試官特別裝b,一直問我 API 細節,方法裏有什麼代碼。最後面試官竟然 JVM 運行時內存區域和 JMM 都分不清,我實在忍不住了反問了一句:公司難道是在招 API 工程師嗎?

被辭退後我一週面試了13家公司,想給你們分享這個收穫

諸葛找房

  • 事件分發機制
  • HTTP 響應嗎
  • Handler 機制
  • 手寫排序算法
  • 常用設計模式

異鄉好居

  • http https
  • js webview交互
  • handler爲什麼不卡死
  • App啓動流程
  • 自定義view過程
  • 動畫原理
  • 事件分發機制
  • 混淆怎麼處理
  • 設計模式
  • 對跨平臺技術的瞭解

FineChart

  • HTTP、HTTPS區別
  • HTTP報文
  • 手寫反轉鏈表
  • 手寫單例模式
  • volatile關鍵字原理
  • 事件分發機制
  • App啓動流程
  • 項目天氣曲線實現原理
  • 第三方開源庫實現原理
  • 線程池原理
  • wait()、sleep()區別
  • 項目中最大的困難是什麼?怎麼解決的?
  • 常用集合類實現原理
  • ConcurrentHashMap原理

阿里體育

電面

  • List、Map、Set 哪個能存null,哪個能重複?
  • 補間動畫與屬性動畫的區別
  • Handler 機制

一面

  • 怎麼實現View懸停?
  • TCP怎麼做長連接?
  • 網絡優化
  • 熱修復原理
  • Instant Run原理
  • 視頻做過嗎?
  • 相機做過嗎?
  • LinkedHashMap、HashMap實現原理,區別是什麼?

二面

  • Android與iOS相比有什麼差別
  • Android與iOS系統內存管理機制瞭解嗎?
  • 常見算法瞭解哪些,時間複雜度是什麼?
  • 項目中遇到的困難是什麼?怎麼解決的?
  • 你最大的優勢是什麼?
  • 對於其他同事,爲什麼你覺得你這個優勢最突出?

不得不承認阿里實力還是很強的,也可能我投的崗位期望 P8 以上水平的緣故,被虐的很慘。突然感覺這幾年都荒廢了,選擇大於努力,一定要選擇好的方向,比如我選擇小程序就是一個錯誤。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

多點科技

一面

  • HashMap、ArrayMap
  • Handler、IdleHandler、postDelay
  • View 繪製原理
  • 事件分發機制
  • 如果子View已經處理了事件,父View怎麼攔截子View事件
  • Binder機制
  • 線程池原理
  • 垃圾回收機制
  • 類加載機制

二面

  • OkHttp、Retrofit、Glide、ButterKnife、EventBus、RxJava
  • Jetpack、LiveData、ViewModel
  • ArrayList、LinkedList
  • Material Design
  • Java併發編程(JMM)
  • MVP、MVVM區別

HR面

  • 期望什麼樣的領導?
  • 期望加入什麼樣的公司?
  • 拿到幾個Offer了?
  • 期望薪資?

董事之一

  • 介紹了下公司的發展前景,公司的優勢
  • 對未來工作的期望?
  • 聊了將近一個小時...

美餐網

  • 怎麼判斷二叉搜索樹是否合法,白板手寫出解法
  • 給出一個業務場景怎麼處理

你沒有看錯,就只有兩道面試題,白板手寫代碼,這是我遇到的最奇葩的公司了,最後還說我代碼寫的不講究(這 tm 是面試吧,我已經說了由於篇幅有限,一些細節就忽略了),太浪費時間了。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

360

一面

  • 線程狀態轉換圖
  • Activity生命週期,一個Activity啓動另外一個Activity生命週期函數調用
  • Activity啓動模式,onNewIntent() 調用時機
  • 動畫有哪些,實現原理
  • setContentView()後面的流程
  • Handler機制,Looper與ANR
  • 過度重繪、UI卡頓
  • WindowManager.addView(),View.getParent()是誰?
  • JMM理解
  • Lock機制

二面

  • 內存泄露、內存溢出
  • 類加載機制、雙親委派模型
  • CAS
  • 有多個線程1、2、3、4,1、2、3 並行完後與 4 串行,至少 3 種方式實現
  • 網絡參考模型
  • HTTP、HTTPS傳輸過程
  • TCP三次握手、四次揮手
  • 用過哪些設計模式
  • 根據簡歷多渠道包怎麼構建的
  • 反射原理

三面

  • 一般都是根據簡歷問
  • 對大前端技術的瞭解
  • 類加載機制
  • 對JDK各版本差異的瞭解
  • Android系統啓動流程
  • AMS、WMS
  • 對Framework層源碼的瞭解,爲什麼這麼設計,優缺點

關於準備

每個人應聘的職位級別不一樣,需要準備的範圍也有所不同。我應聘的是高級職位,主要準備了以下幾點:

Java 基礎

一般都會問 Java 虛擬機相關知識:類加載機制、雙親委派模型、垃圾回收機制、運行時內存區域、註解、泛型、反射等等。強烈建議精讀一下《深入理解 Java 虛擬機》這本書。

Java 併發編程也是高級必問知識:Thread生命週期、JMM、volatile、synchronizied、final、JUC、Lock、線程池等等。推薦看一下《Java 併發編程的藝術》。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

Android 基礎

這部分內容比較多,還是需要平時多積累,養成看源碼的習慣。

現在一般都不僅僅問原理是什麼了,比如 View 繪製原理會問 requestLayout() 和 invalidate() 什麼區別?什麼情況下 requestLayout() 會執行 onDraw() 方法?

Handler 機制大家都會說,網上找找都能找到,現在會問一個線程幾個 Looper,幾個 Handler?Looper 中的死循環爲什麼不會卡死主線程?IdleHandler 的原理?發送延時消息怎麼處理的?

如果你能從 Handler 答出 epoll 機制,接下來會問 epoll 機制的原理,有沒有看過源碼?

高級崗位 Framework 層原理肯定逃不過的,系統啓動流程、Binder、AMS、WMS 都是最基礎的,最好有一個自己深入研究的方向,比如 SurfaceFlinger。

進階一定要看剛哥的《Android 開發藝術探索》必備,Framework 部分《Android 內核剖析》、《Android 源碼情景解析》、《深入理解 Android》系列等都是很不錯的書籍。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

網絡基礎

面試中一般會問 HTTP 的三次握手、四次揮手過程,以及爲什麼?HTTPS 的通訊過程?等等。

網絡是個大方向,對於 Android 工程師來說,常見的概念必須要了解的,當然深入研究一下也是很不錯的加分項。就像直播,網絡優化等方面都離不開網絡知識。

推薦看一下《圖解 HTTP》、《圖解 TCP/IP》,向深入研究可以看《TCP/IP 詳解》、《UNIX 網絡編程》。

數據結構與算法

數據結構計算機專業的一般都是必修課,網上資料很多這裏放上我收集到的一些資料,文末自取。

面試中數據結構一般會問 Java 集合類:ArrayList、HashMap、ConcurrentHashMap 等等,常見的高頻算法題一定要準備下。
算法可以看看《算法》、《算法導論》、覃超的《算法面試通關 40 講》、刷下 LeetCode。

被辭退後我一週面試了13家公司,想給你們分享這個收穫

設計模式與架構

設計模式一般會問你在項目中常用的設計模式有那些?等你說完之後會問你怎麼用的,什麼場景用的?它的優缺點是什麼?遵循了什麼原則?違背了什麼原則?...

架構 MVC、MVP、MVVM 爛大街的問題,一般會問它們的優缺點各是什麼?

被辭退後我一週面試了13家公司,想給你們分享這個收穫

總結

雖然後面還有好幾家面試,也有像豹廠這樣的很不錯的公司。但不得不承認一天面兩家,一週面 10 多家實在太累了。

在收到大數字公司的 Offer 後就沒有再面了,加上 HR 將近五輪的面試聊得過程都很愉快,大數字公司也是我比較理想的公司。

雖然在之前也收到了幾家很不錯 Offer,相比之下還是大數字公司比較適合我,接下里的幾年也需要好好沉澱一下技術了。

經過這一次的被動面試經歷,我個人感受有以下幾點:

一定不要裸辭

如果是裸辭找工作,HR 一般都會問什麼時候離職的。如果手裏沒有 Offer,就很被動了,很有可能被壓薪資。主動權一定要掌握在自己手中。

選擇大於努力

即使很努力如果方向錯了就是浪費時間,就像我選擇了小程序就是個錯誤(大前端坑太多,入坑需謹慎)。我的建議是多深入研究一些以不變應萬變的技能。

學歷與履歷

雖然說能力很重要,但學歷是敲門磚(HR 就看這個)。如果連面試機會都沒有,還怎麼談然後?如果學歷不突出有很好的大廠履歷也很不錯,貌似是個蛋生雞,雞生蛋的問題。

充分準備

一些基礎知識和理論肯定是要背的,要理解的背,用自己的語言總結一下背下來。

雖然 Android 沒有前幾年火熱了,已經過去了會四大組件就能找到高薪職位的時代了。這隻能說明 Android 中級以下的崗位飽和了,現在高級工程師還是比較缺少的,我能明顯感覺到國慶後多了很多高級職位,所以努力讓自己成爲高級工程師纔是最重要的。

好了,希望對大家有所幫助。

接下來是整理的一些Android學習資料,有興趣的朋友們可以加我wx:X1524478394 免費獲取

①Android開發核心知識點筆記

被辭退後我一週面試了13家公司,想給你們分享這個收穫

②對標“阿里 P7” 40W+年薪企業資深架構師成長學習路線圖

被辭退後我一週面試了13家公司,想給你們分享這個收穫

③面試精品集錦彙總

被辭退後我一週面試了13家公司,想給你們分享這個收穫

④全套體系化高級架構視頻

被辭退後我一週面試了13家公司,想給你們分享這個收穫

Android精講視頻領取學習後更加是如虎添翼!進軍BATJ大廠等(備戰)!現在都說互聯網寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎麼可能會被裁掉,都是淘汰末端的業務Curd而已!現如今市場上初級程序員氾濫,這套教程針對Android開發工程師1-6年的人員、正處於瓶頸期,想要年後突破自己漲薪的,進階Android中高級、架構師對你更是如魚得水,趕快領取吧!

【Android進階學習視頻】、【全套Android面試祕籍】加我wx:X1524478394 免費獲取!

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