面的是字節跳動平常實習崗,面試體驗挺好的,面試官和hr都很nice,挺有效率的。不過實力也是運氣的一部分,三面面試官對計算機基礎要求高,因爲大二目前尚未開課,也沒有對操做系統和計網進行自學,只有簡單瞭解,怪本身沒有花更多的時間去自學。最後止步於三面仍是挺惋惜的,大二若是能找到一個實習仍是挺棒的體驗。java
一面面試
- 聊項目,項目中作了什麼,難點是什麼
- 組件化實現,ARouter+EventBus
- 觀察者模式
- Retrofit動態代理細節實現,如何與Rxjava配合使用,動態代理能代理抽象類嗎?Retrofit爲何會選擇接口來定義請求方法。
- Jetpack框架
- Kotlin
- HashMap、HashTable、ConcurrentHashMap
- 手寫中序遍歷二叉樹非遞歸
二面算法
- 聊項目,項目中作了什麼
- 一樣問了Jetpack框架,LifeCycle、LiveData好處,observer和observerForever的區別。
- sychronized、volatile,這裏扯到了JVM內存模型
- 線程如何同步,生產者消費者模型,如何終止線程
- Rxjava的Flowable和Observable區別,map和flatmap,線程切換如何實現
- MVVM和MVP的區別,以及實現細節
- 一點點計網相關,請求頭,POST、GET,抓包等。
- ViewModel相關內容,例如爲何用ViewModelProviders而不是new,ViewModel與MVP裏Presenter的對比
- 爲何要選取xxx框架
- 手寫判斷平衡二叉樹
三面
三面面試官挺注重基礎的,因爲大二計網和操做系統沒怎麼學,被問傻了。框架
- 聊項目,爲何要重構,對業務上來講不是沒幫助嗎
- Java寫了多久,爲何轉Kotlin,這樣基礎不會不牢固嗎
- volatile關鍵字
- Kotlin範型與Java範型
- http和https,就答了ssl加密,其餘就不太清楚了
- 爲何計算機要設計棧和堆
- 因爲基礎太菜了,面試官未出算法題。 Ps:有平臺不錯的公司的大佬能撈我簡歷嗎...有大二hc的...555