1. 程式人生 > 其它 >androidui庫,這些年Android面試的那些套路,實戰解析

androidui庫,這些年Android面試的那些套路,實戰解析

開頭

中國網際網路發展的這些年,如今90後程序員是中國程式設計師的主力軍,網際網路的熱潮也讓一批批00後蠢蠢欲動,嘗試湧入網際網路圈。

當程式設計師容易,當一個優秀的程式設計師需要不斷學習,從初級程式設計師到高階程式設計師,從初級架構師到資深架構師,或者走向管理,從技術經理到技術總監,每個階段都需要掌握不同的能力。早早確定自己的職業方向,才能在工作和能力提升中甩開同齡人。

個人經歷

其實我有好長一段時間沒有正規的面試過了,大約3年的時間裡面,我沒有正規地接受過面試。

所以在準備投位元組跳動之前,我投了幾個公司做了一下熱身活動。記住,這個時候其實不需要有啥心理包袱。因為本身候選人面試成功的可能性比較低,一個合適的可以面試的人選他們也很樂意看看,而且萬一你確實想換工作,但是心儀的公司面不上,而熱身活動的公司拿到了offer,你也可以考慮考慮去看下。並且這個時候你沒有任何的心理包袱,因為反正你也就是來面試看看的,所以面試時候的發揮可能也會更好點,因此說不定最終拿的offer會比最後想去的那家更好呢?

面試準備

老實說,我自己平常沒事就會看一些面試題,所以我都是直接去面的。

建議大家如果準備面試的話,需要做以下準備:

背題:看一看最近的面經文,瞭解現在公司都在面什麼型別的題,準備一些常見題,開背吧!如果一些基礎的開發問題都不會那問題就有點小大了。

演算法:做一些演算法題,leetcode 上面的一二三星就夠了,前端演算法很簡單,基本都是初中數學的難度吧。

專案:專案回顧,把你做的專案從技術架構到原始碼都要做到足夠了解,至少面試的時候不要被面試官問住了。並且要體現出你在工作中的作用,體現出自驅性。(大公司都很看重自驅性)。

亮點:準備亮點,回答問題的時候不用全部回答上來,但是在面試的過程中一定要有亮點(不然你就會得到反饋,面試官說你還行,但是沒有過~) 我一般會準備幾個點,每個點都保證可以睡上半小時。另外一定要了解的很深入,並且能夠用自己的話流暢的表達出來!!

內推:最好找人內推,成功率會提高一些。

練手:先找幾家不太想去的公司(規模差不多)練練手,如果第一次面試就去心儀的公司面試,淘汰率會非常高。

心態:心態很重要,面試不過很正常,不證明你不優秀,只是不適合,總結面試經驗,為下一次做準備。

如何回答問題?

怎麼把自己會的問題說好,這個很關鍵。

邏輯清晰 一定要邏輯清晰,不然即使你知道這個問題的答案,面試官也不會滿意,如果你邏輯清晰,即使這個答案不會,面試官也會給你加分。

獨特理解 現在的面試題大同小異,那麼如何體現出你的優勢就很重要。結合業務以及你自身的知識儲備來講。

深入思考 對每個問題一定要有深入的思考,不然就很難進入大公司了,深度上要有一個拔高才能在面試中獲得好的成績。

流暢表達 面試就是一個表達的過程,一些問題心裡明白不行,還要流暢的表述出來,基本上如果面試官覺得你表達的很流暢,當你講到一半就不會再讓你說下去了,證明已經通過了。

刷題當然也是最重要的,畢竟我是有好幾年沒有過正規面試的經歷了,於是問我在阿里的同學要來了一份他們公司P8整理的一系列大廠面試題,刷到天昏地暗,如今我也已經入職了位元組跳動,這些面試題對於我來說也沒什麼太大的用處,所以在這裡無償的分享給大家。

位元組跳動面試經歷

位元組跳動一面

  • 自我介紹
  • 介紹下Android的mvc/mvp/mvvm
  • view的事件分發機制
  • viewGroup 怎麼知道view有沒有消費事件
  • 寫一個單例模式(解釋單例模式中的sync,雙鎖,volidate)
  • 演算法題目:
    有A和B兩個有序陣列(陣列元素不重複),給出sum,請找到A和B中所有相加和為sum的序列對(面頭條遇到的)
    A:[1,4,5]
    B:[3,4,6]
    sum=8
    output 1,1,2,0 => because A[1]+B[1]=8 /A[2]+B[0]=8
  • 記憶體洩漏有哪些?怎麼排查

閒聊

之後就問了我最近看了哪本書,學到了什麼,最近還在學的什麼技術呢?問了我職業規劃,興趣愛好,還說了說公司的語言選型,我後來問了下對於我的面試表現評價,人家不方便說,又問了新人培養等問題。

位元組跳動二面

  • 自我介紹
  • 你遇到最難的問題是什麼
  • android的handler機制
  • android的anr機制
  • android冷啟動優化
  • android弱網優化
  • android 視訊相關有了解麼?
  • android長圖片載入怎麼實現
  • gradle用過哪些
  • 最近看什麼書?
  • 職業規劃是什麼?
  • 能接受在北京工作?
  • 演算法題目:排序二叉樹轉有序雙鏈表,要求在原來的樹節點基礎上增加。

位元組跳動三面

這個面試官應該是一個總監級別的,說話非常的硬氣,肯定是一個資深大佬,一共面了40多分鐘。常規的面試基礎都沒問,純懟專案和演算法了。

  • volite的關鍵字,幹了什麼(什麼叫指令重排)
  • 生產者消費者(非阻塞式)
  • 怎樣獲取當前執行緒是否是主執行緒
  • 怎樣檢測函式執行是否卡頓
  • 常用的對稱加密演算法,有什麼同
  • view分發反向制約的方法
  • 兩個執行緒用不同的物件,怎麼養
  • 樂觀鎖使用
  • hashmap底層原理
  • arraylist底層原理
  • webview如何做資源快取
  • hashmap擴容
  • 一張圖片100*100的圖片在記憶體中的大小
  • 專案裡面的難點(如何解決,解決方案是什麼)
  • 一個app釋出一個版本後,發現變卡了,你如何復現?如何得知某個地方變卡,如何得知使用者在某行程式碼變卡
  • android 動畫機制有哪些?
  • lottie的原理
  • 直播中的動畫要怎麼做?要做成動態的,比如禮物是可以配置的?
  • 演算法題:找出陣列中的k數。k數的定義:比位置位於這個數前面的數字都大,且比位置位於這個數後面的數字都小的數字(陣列首尾的數字不用管)(面頭條遇到的)
    [4,1,3,2,7,9,8,10,12]
    此陣列中的k數為7和10

位元組跳動四面

HR面,大約35分鐘,主要是問個人職業規劃、薪資待遇,以及對位元組跳動的期許等等....

文末

我總結了一些Android核心知識點,以及一些最新的大廠面試題、知識腦圖和視訊資料解析。

需要的小夥伴私信【學習】我免費分享給你,以後的路也希望我們能一起走下去。(謝謝大家一直以來的支援,需要的自己領取)

[點選這裡也可以領取哦!](https://shimo.im/docs/3dQqpTdrrVvtcjjx/ 《BAT、位元組各大廠面試真題集》,可複製連結後用石墨文件 App 或小程式開啟)

  • 330頁PDF Android學習核心筆記(內含8大板塊)
  • Android學習的系統對應視訊
  • Android進階的系統對應學習資料
  • Android BAT大廠面試題(有解析)