記錄今日頭條校招面試經歷,廢話不多說,直接上問題
一面-電面(34 min)
- 專業方向及其內容;
- 操作系統進程和線程的區別;
- 嵌入式底層了解沒;
- 多核里面進程和線程的表現;
- APK 包含了哪些東西,打包過程是什么;
- Android 內存優化和布局優化的經驗;
- 網絡框架用的哪個,描述一下;
- Avtivity 的啟動方式簡述;
- Handler 機制描述;
- Android 事件分發過程;
- HashMap 的實現過程;
- Java 的 final 關鍵字的作用;
- volatile 的作用,為什么會出現變量讀取不一致的情況, synchronized 的區別;
- Tcp 三次握手過程
- Http 的 header 和狀態碼簡述。
二面-電面(38min)
- 有沒有電腦在身邊;(沒有,那就湊合面吧)
- 有一個 List 列表,去掉列表中的某一 Object 對象,如何在 for 循環里面寫;
- 有一個 int 數組,如果將里面的正負整數調整到各自一邊;
- 自行設計一個緩存框架;
- Java 中的 Error、 Exception 的區別;
- 外排序有哪些,與內部排序的區別;
以上是內推面試的過程,由于二面沒有面好,當時認為已經跪了,沒想到后續又給撈起來了,幸哉。
一面-視頻面(40min)
- 自我介紹;
- 介紹 MVP 模式;
- 算法:單鏈表輸出倒數第 k 個元素,冒泡排序,100 萬個數據找出 100 個最大的;
- 線程(進程間)通信機制有哪些;
- Handler 消息機制;
- 線程如何實現;
- Activity 四中啟動模式;
- 有什么要問的;
二面-視頻面(30min)
- HashMap 的實現原理;
- 進程與線程的區別;
- 斷點上傳如何設計;
- Android 音頻控件如何使用,底層原理;
- ArrayList 如何刪除重復的元素或者指定的元素;
- Java 異常簡介;
- Tcp 三次握手和四次揮手;
- Java GC簡介
- 有什么要問的;
三面-視頻面(40min)
- 自我介紹
- 算法:數組插入
- 操作系統如何管理內存的;
- 瀏覽器輸入地址到返回結果發生了什么;
- Tcp 是如何保證可靠性傳輸的;
- Tcp/IP 協議幾層;
- Tcp 建立鏈接每一層都做了什么工作;
- 如何設計在 UDP 上層保證 UDP 的可靠性傳輸;
- Java 中內部類為什么可以訪問外部類;
- 設計移動端的聯系人存儲與查詢的功能,要求快速搜索聯系人,可以用到哪些數據結構?(二叉排序樹,建立索引)
- 你有什么要問的;