
前言
當你準備跳槽面試的時候,明明只是一份15K的作業,卻問你會不會多執行緒,懂不懂高并發,火箭造得讓你猝及不防,結果就是兩個字——涼涼!而在如今的市場,什么多執行緒、高并發、分布式、負載均衡、集群、微服務等等等等,都可說是Java高級后端開發求職的必備技能,

2020的秋招可以說也是完美收官,前段時間收到位元組跳動的面試邀請,雖有點震驚,但卻依舊保持平常心去對待,結果一不小心就吊打了面試官(前后一個半小時的面試程序全程沒卡殼,專案和演算法全部搞定,甚至聊到了面試官的盲點…)

而最終的結果……當然是順利的接到了位元組跳動的Offer,定級為2-2資深研發人員,
面試前的準備
老實說,我自己平常沒事就會看一些面試題,所以我都是直接去面的,不過我還是要建議大家如果準備面試的話,需要做以下準備
- 背題:看一看最近的面經文,了解現在公司都在面什么型別的題,準備一些常見題,開背吧!如果一些基礎的 js 都不會那問題就有點小大了,
- 演算法:做一些演算法題,leetcode 上面的一二三星就夠了,前端演算法很簡單,基本都是初中數學的難度吧,
- 專案:專案回顧,把你做的專案從技術架構到原始碼都要做到足夠了解,至少面試的時候不要被面試官問住了,并且要體現出你在作業中的作用,體現出自驅性(大公司都很看重自驅性)
- 亮點:準備亮點,回答問題的時候不用全部回答上來,但是在面試的程序中一定要有亮點(不然你就會得到反饋,面試官說你還行,但是沒有過~) 我一般會準備幾個點,每個點都保證可以睡上半小時,另外一定要了解得很深入,并且能夠用自己的話流暢的表達出來!!(我準備的幾點,性能優化、工程化、快取、http)
- 內推:最好找人內推,成功率會提高一些
- 練手:先找幾家不太想去的公司(規模差不多)練練手,如果第一次面試就去心儀的公司面試,淘汰率會非常高,
- 心態:心態很重要,面試不過很正常,不證明你不優秀,只是不適合,總結面試經驗,為下一次做準備,
- 答題:怎么把自己會的問題說好,這個很關鍵
- 邏輯清晰:一定要邏輯清晰,不然即使你知道這個問題的答案,面試官也不會滿意,如果你邏輯清晰,即使這個答案不會,面試官也會給你加分
- 獨特理解:現在的面試題大同小異,那么如何體現出你的優勢就很重要,結合業務以及你自身的知識儲備來講
- 深入思考:對每個問題一定要有深入的思考,不然就很難進入大公司了,深度上要有一個拔高才能在面試中獲得好的成績
- 流暢表達:面試就是一個表達的程序,一些問題心里明白不行,還要流暢的表述出來,基本上如果面試官覺得你表達的很流暢,當你講到一半就不會再讓你說下去了,證明已經通過了
刷題絕對是最重要的,于是問了我在阿里的同學要來了一全套他們公司P8整理的系列大廠面試題,刷到天昏地暗,如今既完美收官了,這些面試題還有自己之前收集整理的一份核心架構進階知識點,存在網盤也沒太大的用處,所以在這里免費分享出來給有需要的朋友,


位元組跳動4面(3面技術+1面HR)面試經歷
1.1 位元組跳動一面
- 首先自我介紹,balabala……(此處省略三分鐘)
- 找一個你的專案說一下,首先你的專案介紹,承擔了什么職責,做了哪些作業,難點(因人而異,這就不再贅述了,balabal……(省略三分鐘))
- 從你專案中看出,你使用的是mysql,mysql的int資料型別都有哪些?從小到大說一下,各占多少位元組?
- java中的int都有哪些?位元組占多少
- 問你一個關于計算機網路的,tcp的三次握手說一下?
- tcp和udp的區別?
- 你說你熟悉linux,我給你一個案例,搜索出log文本中出現次數最多的IP,并且給出次數
- 說下java的gc?
- 說一下hashmap這個資料結構?
- 進行一次查找的話haspmap的時間復雜度是多少?
- 給你一個演算法你看一下,有一個無限長的整型陣列,從小到大排序,非遞增,那么怎么找到陣列中一個key?
- 閑聊
之后就問了我最近看了哪本書,學到了什么,最近還在學的什么技術呢?問了我職業規劃,興趣愛好,還說了說公司的語言選型,我后來問了下對于我的面試表現評價,人家不方便說,又問了新人培養等問題,
1.2 位元組跳動二面
- 自我介紹(balabla)
- 然后說一說mysql的索引結構吧
- 看一道題吧,這個題怎么建立索引
(1)第一道題:
mysql訂單表有幾個屬性:訂單id,用戶user_id、下單日期date(精確到天)等,請問索引怎樣建立
a. 查詢某個用戶的所有訂單
b. 查詢某一天的所有訂單
c. 查詢某一天某個用戶的所有訂單
(2)第二道題:
10G檔案,每一行一個 uint32 數字,有一臺1G記憶體的機器
- A. 找出最大的 k 個數
- B. 找出重復數字
(3)第三道題:
我手中有一堆撲克牌, 但是觀眾不知道它的順序,
第一步, 我從牌頂拿出一張牌, 放到桌子上,
第二步, 我從牌頂再拿一張牌, 放在手上牌的底部,
第三步, 重復第一/二步的操作, 直到我手中所有的牌都放到了桌子上,
最后, 觀眾可以看到桌子上牌的順序是:13\12\11\10\9\8\7\6\5\4\3\2\1 請問, 我剛開始拿在手里的牌的順序是什么?用代碼實作以下
1.3 位元組跳動三面
這個面試官應該是一個總監級別的,說話非常的硬氣,肯定是一個資深大佬,一共面了40多分鐘,常規的面試基礎都沒問,純懟專案和演算法了,
- 自我介紹
- 你覺得你目前遇到的困難有哪些?專案上的難點?
- 你的專案資料庫多大?QPS多少?哪些sql比較慢?(專案上的事我就不說了……balaba)
- 那你覺得以后qps更大的話,你該怎么設計?
- 給你一個演算法題,你來看一下思路
- 那留兩分鐘咱們聊一聊,你有什么想問我的
1.4 位元組跳動四面
HR面,大約35分鐘,主要是問個人職業規劃、薪資待遇,以及對位元組跳動的期許等等
最后:分析一波,Java核心架構進階知識點
面試成功其實都是必然發生的事情,因為在此之前我做足了充分的準備作業,不單單是純粹的刷題,更多的還會去刷一些Java核心架構進階知識點,比如:JVM、高并發、多執行緒、快取、Spring相關、分布式、微服務、RPC、網路、設計模式、MQ、Redis、MySQL、設計模式、負載均衡、演算法、資料結構、kafka、ZK、集群等,而這些也全被整理濃縮到了一份pdf——《Java核心架構進階知識點整理》,全部都是精華中的精華,本著共贏的心態,好東西自然也是要分享的


目錄17頁

內容詳解280頁

內容詳解280頁
內容頗多,篇幅卻有限,這就不在過多的介紹了,大家可根據以上截圖自行腦補,不過這份《Java核心架構進階知識點整理pdf》以及前面P8整理的全套系列大廠面試題皆可免費分享給有需要的你,每位認可的朋友注意啦:free download方式——轉發


最后只一句,機會永遠是留給有準備的人!也祝愿大家身體健康,順利拿到心儀的offer!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/202558.html
標籤:其他
