前言
6年前,BAT沖到了風口浪尖,美國上市的阿裡成為中國體量最大的網際網路公司,騰訊借助微信成為移動網際網路的霸主,外企開始撤離中國,國企的光環也慢慢褪去。
到了近年,應屆畢業生心中最炙手可熱的公司換成了TMD及各路獨角獸公司,這些公司代表着科技最前沿,能夠許諾高薪和美好前景。
位元組最讓我中意的不是薪資,也不是免費三餐下午茶,也不是免費無限量供應的零食和現磨咖啡,也不是優越的辦公環境,也不是價值兩萬塊錢的蘋果電腦,也不是價值小一萬的人體工學椅位元組最讓我中意的是每周五的狼人殺活動,和一群聰明人一起打狼人殺真的很快樂
面試經曆
1 面 1h 多(具體多了多少分鐘忘了)
1.算法題
兩個棧實作隊列
2.算法題輸入一個數組,想一種方法讓這個數組盡可能的亂序,保證功能能實作的情況下時間複雜度和空間複雜度盡可能的小,可使用随機數函數。(面試官最後說了 O(n)的時間複雜度能實作)
3.寫一個單例(自己寫一種就行)
4.ActivityA -> Activity B -> Activity A
Activity A 啟動模式為 singleTask
Activity B 啟動模式為正常模式
問A 啟動 B,B 又啟動 A 的生命周期調用順序?
5.你剛才提到 onsaveinstancestate() ,說一下調用時機,它用來幹什麼的。
6.onsaveinstancestate() 儲存的那個參數叫什麼?Bundle 裡面都放一些什麼東西?怎麼實作序列化?Parcelable 和 Serializable有什麼差別?
Bundle 。
7.數組和連結清單的差別
8.HashMap 的結構以及原理
9.我看你履歷上寫了 retrofit,你能說一下它是做什麼的,如果知道基本架構也說一下
10.了解 View 的繪制機制嗎,能說一下嗎
11.我看你項目裡用的 Fragment 能說一下 Fragment A 啟動了 Fragment B,Fragment B 中按下傳回鍵隻退出 Fragment B 怎麼實作。
12.你還有什麼要問的嗎?
2 面 1h 多(具體多了多少分鐘也忘了,加起來 2.5 小時的樣子)
1.算法題一個字元串,求最長沒有重複字元的字元串長度
2.string stringbuffer 和 stringbuilder 差別
3.final finally finalize差別
4.數組和連結清單的差別
5.HashMap 了解過嗎
6.Tcp 三次握手四次揮手
7.get 與 post 的差別
8.synchronized 的作用
9.你知道哪些設計模式
10.Android 程序通信的方法
11.那你能說一下 Intent 是怎麼程序通信的
12.記憶體洩漏有哪幾種情況
13.有什麼要問
三面(50mins):
0、自我介紹
1、算法,跳棋盤
2、浏覽器輸入URL到渲染全過程
3、Http請求封包響應封包
4、http2.0有哪些優化
5、用過哪些網絡庫
6、OkHttp的Intercepter
7、Android持久化方式
8、Java線程同步的資料結構
9、反問
總結:面的時候很緊張,因為這是最想去的公司,是一直以來的夢想。
hr回報說面試官覺得我有耍小聰明的嫌疑,可能是話太多了。這個得注意,有控制地說。
學習經驗及思路總結
(一)調整自己的心态,正确面對得失
面試中常見的問題,主要是心态,面試調整心态是第一位的,如何調整成最佳心态呢?很多求職者在面試過程中自己思路不清晰,語言不流暢,說話毫無邏輯,會不斷否定自己,歸根結底都是面試心态問題,是以調整自己的心态,正确面對得失是非常重要的,我的方法是給自己足夠的心理暗示。
(二)提升技術,擴寬知識
對于程式員來說,要想成長為一名行業内的大牛大神級别的人物,那麼唯一的辦法就是通過學習,來不斷提升自己的技術,擴寬知識,達到一定的高度和深度。那麼如何提升自己的技術,擴寬自己的知識儲備呢?
以下是我這三年來到處收集整理的,希望可以給各位提供一些幫助:
Android學習PDF+視訊+面試文檔+源碼筆記
一、Android部分:
1.第五大元件FragmentAndroid知識體系總結之Android部分之Fragment篇
2.對話框 & 彈框 & 通知 & 懸浮窗之 WMS 源碼篇
3.Android UI控件篇 進階自定義View, 主要是原理和手寫實作
4.Android 系統架構篇
5.Android 通信篇
6.Android Framework 源碼篇
7.Android 網絡程式設計篇
8.原生音視訊圖檔開發篇[非JNI]
9.Android 特殊知識點【不知道如何分類的知識點】
10.Android 必須掌握的輪子 原理篇
11.Android 架構篇
12.Android 優化篇
13.Android 職業方向篇(有正确的職業方向,才能不浪費自己的職業生涯)
14.Android 工作工具篇
15.Android 工作必備技能篇
16.Android 跨平台開發篇
二、Java部分:
1.JVM
2.static
3.final
4.String. StringBuffer. StringBuilder
5.異常處理
6.内部類
7.多态
8.抽象和接口
9.集合架構
10.反射
11.單例
12.多線程
13.volatile
14.synchronized
15.Lock
16.引用類型
17.動态代理
18.元注解
三、 Kotlin 部分
1.Kotlin Primer · 第一章 · 啟程
2.Kotlin Primer · 第二章 · 基本文法
3.Kotlin Primer · 第三章 · Kotlin 與 Java 混編
四、計算機網絡部分
1.計算機網絡體系結構
2.HTTP相關
3.TCP相關
4.Socket
5.總結
五、算法與資料結構部分
1.Android資料結構學習之順序表
2.Android資料結構學習之連結清單
3.Android資料結構學習之隊列
4.Android資料結構學習之棧
5.Android資料結構學習之樹
6.Android資料結構學習之 排序查找
7.Android資料結構學習之 動态規劃
六、 Flutter部分
1.Flutter是啥玩意兒?
2.移動端跨平台技術對比
3.Dart語言
4.環境配置
5.Hello World
6.路由
7.widget
8.布局
9.動畫
10.http請求
11.吐吐槽知識點總結
七、 2018-2020Android進階面試題
1.java面試題
2.Android面試題
3.混合開發面試題
4.高端技術面試題
5.非技術性問題&HR問題彙總
- 實戰系列:MVP架構+NDK音頻+Flutter+Kotlin實戰等
- 其他相關的電子書:源碼+調優+面試等等
(三)刷題
如何刷題?這是很多現在面試者心中的困惑,我們都知道,面試前刷題是很有必要的,畢竟很多題目都有一定的共性,刷足夠題目就能夠做到舉一反三,甚至在面試時,被問到原題,能夠侃侃而談,那麼刷題如何進行呢?建議:最好找一些曆年的面試原題,分專題來對自己進行訓練。
擷取方式:
點贊後加Q:1610387484 & V:lx5888888888838
添加時請備注 ‘CSDN+資料’
也可請加入進階Android進階架構師交流群在群内自行下載下傳,Q 群 :924771892;