憑藉一份“面試真經pdf”,我四面位元組跳動,拿下1-2級offer
前言
為什麼要面試位元組跳動?
近兩年是中國網際網路企業組織架構升級的大年,阿里、騰訊、小米、快手等知名網際網路企業都進行了相應調整。2020年3月12日,位元組跳動成立八週年之際,宣佈組織全面升級,而這一訊息也徹底激起了我對位元組跳動的期待。
實際上,我算是位元組跳動名副其實的腦x粉,手機裡的最多的app是位元組旗下的,包括頭條、抖音、西瓜視訊、懂車帝。而位元組跳動也是我最看好的網際網路公司之一,因此我首先向位元組跳動丟擲了我的“橄欖枝”。
注意:文章以下內容所提供的 [面試真經、思維導圖、學習筆記、面試題庫]等文件,均免費分享,戳這裡,暗號:CSDN即可打包帶走~
位元組跳動面試經歷(已拿1-2級offer)
位元組跳動一面:
- 自我介紹
- 介紹第一個專案
專案的目的,專案的整體架構,負責模組的簡單介紹
功能許可權的實現
- 演算法題:
給定兩個陣列,求兩個陣列的交集,且重複多少次,就列印幾次
比如:[1,2,2,3,5,7]和[1,1,2,2,2,2,3,3,5,7,8],結果[1,2,2,3,5,7]
- JVM記憶體結構?
- OOM的場景?堆和棧的一些區別?
- HashMap的擴容機制?儲存的方式?hash後碼相同時怎麼處理?
- 執行緒池是什麼?怎麼用?有什麼好處?執行緒池的核心引數?
- 資料庫的索引結構?B+樹的結構?與B樹的區別?
- Redis瞭解過嗎?Redis的資料結構?快取擊穿是什麼?怎麼解決?
- 事務的隔離機制?四種事務隔離級別的分別是什麼意思,有什麼區別?事務隔離機制裡用了AOP,是如何用的?
- Linux的top指令可以檢視什麼資訊?top中的load指的是什麼?網路相關的指令用過哪些?查埠號用哪一個?
- 樂觀鎖和悲觀鎖?在資料庫裡怎麼實現一個樂觀鎖?樂觀鎖在資料庫中的實現形式?
- TCP的滑動視窗機制?
- Jenkins自動化部署的流程?
- 有什麼問題要問?
位元組跳動二面:
- 自我介紹
- 專案的需求背景,以及專案的架構,專案的實現細節
- 資料庫的第三正規化
- 有沒有對自己開發的模組做過壓測?如果讓你去做壓測,你會如何去做?
- 如果資料規模增大幾個數量級,可以有什麼優化?
聯合索引的使用,減少回表次數
Redis快取
- 如何去設計快取
- redis中常用的資料結構?快取擊穿和快取穿透
- 開源的DevOps平臺用過嗎,CICD平臺?
- 演算法題:拿糖問題
給一個數組{1,3,5,7,8,10},每個位置上數字代表每個位上有幾個糖
不能拿相鄰的糖,最終怎麼拿最多的糖
- volatile關鍵字的功能
- Linux的buffer記憶體和cache記憶體
- 虛擬記憶體、常駐記憶體、共享記憶體
- 路由器,交換機工作在哪一層?
- ConnectTimeOut ReadTimeout異常的區別?Unknown host是什麼原因導致的?
- 瀏覽器輸入 www.xxx.com 最終展現網頁,整個過程
- 觀察者模式
- 說一下zookeeper和ES
- 對發展方向有什麼想法
- 你有什麼想問的?
位元組跳動三面:
- 詢問畢業時間,詢問GPA和研究生研究方向
- 專案具體細節,介紹負責的模組,專案的具體架構?
- 什麼是DevOps?DevOps的使用場景?
- 微服務是什麼?微服務的粒度?怎麼去劃分?
- 詢問專案的細節
- 面對百萬級的資料,你的模組需要怎麼優化?
- 開發時使用的技術?有沒有深入瞭解?
- 說一下GC演算法?G1和CMS分別是什麼,區別?
- 你還有什麼問題?
位元組跳動HR:
- 自我介紹,對公司面試的評價,實習時間
- 為什麼轉專業?
- 你認為你有什麼優點?有什麼缺點?有什麼興趣愛好?
- 在團隊中習慣充當什麼樣的角色?
- 遇到過比較困難的事情是什麼?覺得自己很幸運的事情是什麼?
- 對於未來的規劃?有沒有使用過公司的其他產品?有沒有轉正想法?
- 你還有什麼想問的?
位元組跳動面試題答案:
能拿下位元組跳動offer,多虧這份“面試真經”
1.1 Java面試真經
這份面試真經實際上是Java面試核心知識點的整理,文件裡囊括的知識點是比較多的,非常齊全,每一個知識點的解析和講解也非常清楚,看完之後基本上就摸清了現在面試會問哪些方面的問題,也會了解如何回答這些問題,對面試提供的幫助是非常大的。(私信“成長”領取)
- Java基礎部分(基礎集合類原始碼、併發程式設計、鎖的實現、JVM原理等)
- 資料結構與演算法
- MySQL資料庫(索引結構、優化、事務、語句執行等)
- 計算機網路
- 作業系統
- 拓展部分(開源框架原始碼、雲原生元件等)
1.2 學習筆記
實際上,自己在複習Java的時候,也多靠一些大神的學習筆記,這些學習筆記個人認為是整理的非常好的,包括SpringBoot、Redis、Tomcat、MySQL調優等。
- Spring Boot 技術總結筆記
- Redis 技術學習筆記
- MySQL 效能調優與架構設計
1.3 思維腦圖(Xmind)
為了讓自己更有條理性地去學習,也特意整理了一些思維腦圖,思維腦圖實際上就是一個知識框架,能夠根據這些圖來查漏補缺。整理了不少思維腦圖,包括Spring全家桶、高併發多執行緒、JVM、Redis以及Dokcer等。
- 思維導圖一覽
- 以 Spring Booot為例?
1.4 演算法刷題(LeetCode+演算法的樂趣)
眾所周知,位元組跳動是一家最喜歡問演算法相關面試題的公司,所以去到位元組跳動,少不了的就是被問到演算法內容,那麼作為面試者,提前做好這些準備相當有必要,畢竟不好好準備一下演算法題,是很容易掛掉的,關於演算法方面,也沒有捷徑可言,最好的辦法就是多刷題。
- 演算法刷題LeetCode
- 演算法的樂趣
1.5 私藏的題庫
最後分享一波我的Java題庫面試不刷題,來年就著急,這些題庫都是我自己蒐羅過來的BAT等一線網際網路大廠面試常問的題目,分成各個專題整理好了,檢視起來是非常方便的。需要題庫的直接[戳這裡,暗號:CSDN](https://jq.qq.com/?_wv=1027&k=j2VaAswB)免費領取吧
總結
作為一名開發人員,我深知環境的變化是非常快的,也知道行業內人才輩出,競爭非常大,所以不及時地去補充知識,不瞭解最新的技術,不斷地去充實自己,是很難跟上時代的發展,職業生涯也容易遭遇瓶頸,因此一名合格的程式設計師,要牢記“學無止境”這個理。
以上我整理的所有資料可以分享給各位有頭腦、有規劃的程式設計師同行們,需要這篇文章,關注我,然後戳這裡,暗號:CSDN免費帶走吧!