多天前,我還癱在床上,懷疑自己廢了,怎麼還沒有去工作?
然後在某個下午,我歡樂地在一個群裡進行技術交流(其實也就是划水),突然有個大佬發出個位元組跳動的內推
【位元組跳動】內推
地點:北京
學歷:本科以上,計算機相關專業
優勢:福利待遇好,業務線目前已經單獨盈利,千萬級DAU,有挑戰有激情。
職位描述:
1、負責位元組跳動旗下爆款娛樂社群皮皮蝦APP Android端的開發工作。
2、負責產品移動端(Android)相關需求的設計與實現;
3、負責移動端(Android)架構設計、基礎元件開發、效能優化等工作;
4、參與產品創意,共同打造新一代的億級社群產品;
職位要求:
1、熟練掌握Java語言,深入理解語言特性;熟練掌握Android Studio或其他開發環境;
2、熟悉Android Sdk、Framework、基礎元件,對重要系統特性和原理有一定的理解;
3、能夠使用常用的第三方庫、基礎元件,並對其特性和實現原理有一定的了解;
4、了解MVC/MVP/MVVM等設計模式,熟悉面向物件思想及相關設計模式;
5、了解常用的Debug工具和方法,熟練掌握異常處理機制;
6、熱愛技術,能夠快速學習,始終保持技術更新;
7、關注業務,對產品有好奇心,關係使用者體驗;
8、有Kotlin開發經驗者優先,有獨立開發產品級APP經驗者優先;
我,我想去,那我得好好問問,學一學經驗(抱大腿),萬一我可以去現場學習呢!
還好,大佬人還是挺nice的,給了我一個名額,現在講講我三面時的情況
一面 (視訊面 3.23 50min)單鏈表倒數第k個節點平衡二叉樹判斷(面試官有給思路)堆和棧的區別(記憶體分配的不同?)HTTP和HTTPS區別,在哪層TCP和UDPTCP怎麼可靠執行緒和程序全域性變數和區域性變數(分配在什麼地方)多執行緒有什麼用,怎麼處理優先順序翻轉死鎖LRU怎麼實現排序中穩定和非穩定快排是穩定還是非穩定二面(視訊面 3.23 40min)介紹專案二叉樹路徑之和為nsynchronizedHandler和Looper(單個Looper和多個Handler)Handler記憶體洩露四種引用瀏覽器使用url整個過程volatile單例模式(手寫)三面(視訊面 3.23 50min)介紹專案即時視訊用什麼協議:TCP、UDP的區別網路較差用什麼協議Top K問題 0-100 1000w個小數(後面改成了兩位小數)(很詳細) -> 桶排序 複雜度專案有沒有做什麼優化類載入 雙親在這裡,大佬強調:GitHub和部落格維護好很重要,demo隨手寫,隨手刪的話,面試官就看不到你的作品,很容易GG
另外,在我的請教(死纏爛打)下,我還挖來了大佬面試時整理好的真題庫,45天突擊後,拿到了offer
面試真題庫
1. 自定義 View
2. 事件攔截分發
3. 解決過的一些效能問題,在專案中的實際運用
4. 效能優化工具
5. 效能優化 (講講你自己專案中做過的效能優化)
6. Http[s]請求慢的解決辦法(DNS、攜帶資料、直接訪問 IP)
7. 快取自己如何實現(LRUCache 原理)
8. 圖形影象相關:OpenGL ES 管線流程、EGL 的認識、Shader 相關
9. SurfaceView、TextureView、GLSurfaceView 區別及使用場景
10. 動畫、差值器、估值器(Android中的View動畫和屬性動畫 - 簡書、Android 動畫 介紹與使用)
11. MVC、MVP、MVVM
12. Handler、ThreadLocal、AsyncTask、IntentService 原理及應用
13. Gradle(Groovy 語法、Gradle 外掛開發基礎)
14. 熱修復、外掛化
15. 元件化架構思路
16. 系統打包流程
17. Android 有哪些儲存資料的方式。
18. SharedPrefrence 原始碼和問題點;
19. sqlite 相關
20. 如何判斷一個 APP 在前臺還是後臺?
21. 混合開發
- 零基礎安卓開發起步(三)
- Android程序管理:Framework層概念
- 僅 2 位 Java 開發,使用小程式上線一款 App
- 使用VSCode 打包你的第一個flutter應用(安卓篇)
- 阿里面了9次,位元組撈了offer?Android開發狗25次大廠面試辛酸淚
- 方舟編譯器是將java程式碼像C++靜態編譯,那麼為什麼安卓當時一開始為啥不用C++?
- 專科渣校,嘔心瀝血在家3個月“拿下”330頁PDF,終於拿下阿里OFFer
- 神一樣的操作,真的牛逼了!Android Jetpack Compose 最全上手指南
- Android開發者必知的記憶體、效能優化細節
- Android面試官:你究竟有多大的勇氣,在簡歷上寫了“精通”?