個人背景:
坐標背景,某211本科畢業生,計算機專業,前公司是某B站,辭職之后就重新規划了一下自己的職業方向,最終目標定在了字節跳動,比較年輕化的一家互聯網公司,近幾年的發展速度也比較快,綜合方面來說比較適合自己,所以就投了字節的簡歷,Java研發方向的,之后接到面試通知,總共耗時了2個星期,一共4輪面試,整個過程比較緊張,提心吊膽的,不過好在最后終於拿到了offer,所以特分享一下字節跳動Java崗的面試經驗。
一面(50分鍾左右,問題比較多)
網絡:
交換機和路由器區別
TCP擁塞控制
TIME-WAIT和CLOSE-WAIT
項目:
Redis減庫存怎么做的
QPS要是上萬怎么辦,Redis怎么抗?(我答的橫向拓展,Nginx限流。其實應該是想問Redis集群)
Nginx怎么限流(漏桶算法、配置burst參數)
分布式事務怎么處理? (簡單說了二段提交、TCC)
TCC有系統掛了怎么辦? (不會。后來查的:TCC框架會記錄日志,不斷重復執行)
數據庫:
InnoDB和MySAIM區別
講一下索引
算法:

二面(55分鍾)
網絡:
三次握手四次揮手全過程
TCP擁塞控制
輸入url到打開頁面全過程
Java:
Java里四種引用
對多態的理解,底層是怎么實現的?(動態綁定)
Jvm運行時數據區
Java的深淺拷貝(clone方法)
Hashtable和HashMap區別,說下HashMap結構
項目:
為什么要用Redis
Redis熱key問題(沒看過… 后來查的:本地HashMap緩存熱key,或者搭建Redis集群)
Redis有哪些數據結構
String是怎么擴容的(不知道,后來查的:2倍擴容,超出1M后每次擴大1M)
Mybatis insert一個對象返回id怎么做的(不會… 扯到了為什么用Mybatis ,動態代理 )
算法:
(A,B)(A,C)(B,D)(D,A)判斷是否有循環引用,提示用拓撲排序(尷尬,沒看過,換了超簡單的第二題做出來了)
蛇形打印二叉樹
三面(45分鍾)
主鍵索引查詢和非主鍵索引查詢區別
b+樹好處
一致性哈希
說一下ConcurentHashMap
設計LRU
數組找是否存在和為M的兩個數
四面(HR面,大約35分鍾,主要是問個人職業規划、薪資待遇,以及對字節跳動的期許等等)
————————————————
版權聲明:本文為CSDN博主「Java阿谷」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45600362/java/article/details/101016543
