3面位元組,4個小時,2次靈魂拷問,結局不盡人意但下次還敢

yunduo1發表於2020-12-15

寫在開篇

和往年相比,今年的春招看上去不是那麼順利,多少都受疫情有所影響,但是令我驚訝的是第一家給我面試機會的公司竟然是宇宙條。一開始接到面試通知時,心情特別複雜,緊張又興奮,位元組跳動是出了名的考演算法,實際上我演算法部分是相對薄弱的。這次面試,一共三輪,共計四個小時左右,這三輪面試對我來說,簡直是靈魂拷問,至於結局,往下看吧!

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

話不多說,面試場景具體如何,各位看官捧個場吧。另外,下文中涉及到的面試題答案、複習資料,均有完整PDF版分享,需要的小夥伴,幫忙轉發一下,關注後新增助理vx:yunduoa2019或掃描下圖二維碼,跟隨助理指引自行獲取

第一輪面試:1小時28分鐘

  • 自我介紹
  • 資料庫索引的作用是什麼?
  • 段頁式
  • 虛擬記憶體
  • 缺頁中斷
  • Major/Minor page fault區別
  • TLB作用
  • 程式/執行緒和虛擬記憶體的關係
  • x86相關 沒聽清 直接說不會
  • 講講jvm,記憶體洩漏怎麼理解的
  • 垃圾回收機制,垃圾回收演算法講解一下,怎麼判斷是老年代,觸發垃圾回收的時機在什麼時候?
  • BIO、NIO、AIO
  • select poll epoll
  • RMQ演算法
  • 無鎖佇列實現細節
  • 資料庫ACID
  • 實驗室專案
  • vector底層 為什麼擴容是1.5倍
  • 演算法部分:

(1)給一個正整數,判斷是否是2的n次冪,他說用最快的方式不要遞迴? 肯定是運算的方式,你能想到的數的運算有哪些,除了加減乘除? 這個地方講了很多,運算太多了,但是感覺不是面試官想要的,我最後把二進位制的移位都說了出來,才get到他的點,問還有些什麼,他最後問我怎麼沒提異或,並且出了幾個二進位制數讓我異或算結果

(2)給一個陣列,陣列裡面有rgb三種數,數量和順序完全無序,給一個演算法按照他想要的r都在前面,g都在中間,b都在後面,用移動次數最少的演算法進行計算,寫演算法 這個地方一直叫我優化再優化,我快瘋了,我說我不行要放棄了,他說你簡歷不是寫著強烈的好奇心求知慾嘛,沒事再想想,我直接笑噴了才放鬆了點繼續想,這簡直是心理戰

第二輪面試:1小時11分鐘

  • 自我介紹
  • 問我計算機網路,作業系統,組成原理,資料結構哪個學的最好?我說計網,因為我實習的時候看了很多計網相關的東西,他叫我把自己最熟悉的東西詳細講解出來
  • 使用https就能保證資料安全嗎?
  • http協議處於網路模型哪一層
  • tcp和udp的本質區別是什麼?這個地方在資料可靠性深挖的比較多
  • 實習過程中用http協議做的事情,http狀態碼解釋
  • http發起請求的時候,get,post別的還有些啥
  • 用post獲取資料會有什麼問題嗎?get和post的區別有哪些
  • c和Java的區別,本質區別
  • 物件導向幾大特徵?什麼時候該用繼承什麼時候不該用繼承?有沒有遇到過這種使用?為什麼繼承破壞了封裝?
  • 實際專案中運用過多執行緒嗎?用來幹什麼?
  • 多執行緒安全問題怎麼解決?實際專案中怎麼解決的,場景和解決方式
  • 多執行緒協作方式,除了鎖還有什麼嗎?
  • 訊號量解釋一下,幹什麼用的?
  • 死鎖怎麼產生的?
  • 發生了死鎖怎麼辦?
  • 銀行家演算法瞭解麼?
  • 演算法部分:

(1)有很多紙盒子,每個紙盒裡裡面套著紙盒子,其中有一個有硬幣,怎麼把硬幣找出來,寫演算法

(2)樹的遍歷方法有什麼,寫一個二叉樹前序遍歷演算法

第三輪面試:1小時15分鐘

  • 自我介紹一下
  • 講一件自己做專案最有挑戰的一件事情
  • 比較mysql和mongodb的優劣
  • mysql用join來做連線,mongodb怎麼做的
  • mongodb冗餘欄位的方式和mysql有啥不同,缺點
  • 資訊變更了,name變了怎麼處理這些冗餘欄位?
  • mongodb裡面的aggravate使用過嗎,舉一個例子,有什麼用
  • pipeline執行機制是什麼,假如你來做mongdb執行引擎,自己設計一個方式來設計這個pipeline
  • 這個問題我回答了很久,因為我完全不懂pipeline,硬著頭皮設計。
  • 你覺得docker這個技術能解決什麼問題?為什麼要用docker做部署?有什麼好處
  • 執行在docker裡面的檔案系統,docker怎麼實現檔案系統機制?
  • 在docker裡面根目錄cd,能不能跳出沙箱回到宿主機?
  • 問了下我前端知識瞭解的程度?react 和 jquery有什麼區別?
  • 直接上演算法了

(1)尋找最近的父節點,給了兩個例子,差不多leetcode中等難度

(2)開放性的問題,貓抓老鼠,貓在圓型中間,老鼠在圓的周長上,速度相同,問貓能不能抓到老鼠,這個問題我給的回答他不是很滿意,我把關鍵點說到了但是不能用數學解釋出來

結局

結局當然是涼了,沒有第四面的通知,但這次經歷給我的感受還是很不一樣的,也為我下一場面試積攢了經驗。之後打算再投幾家網際網路一線大廠,希望能夠順順利利, 收到好訊息吧。

另外,上文的三面題目的答案和具體解析都整理在了文件裡,文章篇幅有限就不在這裡分享了,有需要的可以幫忙轉發一下,關注後新增助理vx:yunduoa2019或掃描下圖二維碼,跟隨助理指引自行獲取

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

我是如何備戰位元組跳動面試的?

第一步:準備簡歷

準備簡歷,並不是指可以在網路上下載一份簡歷模板,然後修修改改就可以使用了。簡歷的精心準備,需要注意三個要點:(1)注意區分:瞭解,熟悉,精通,不要亂寫,面試官很多問題都是根據簡歷描述來進行的;(2)專業知識和專案經驗在精不在多,尤其是專案經驗一定要寫自己熟悉的且有內容可說的,不要認為寫得越多越好。(3)要熟悉自己的簡歷內容,準確掌握,最好是多閱讀自己的簡歷。

如果還是不知道怎麼準備自己的簡歷,我這邊可以分享一下我搜集到的簡歷模板,給大家一個參考,希望能夠在給大家一個合格的敲門磚。

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

第二步:複習+總結

離面試期越來越近也越來越焦慮,這個時候更需要去調整好自己的心態,沉入到複習當中,對各個知識點要學會查漏補缺,學著多去做做總結。

關於複習和總結,我自己也整理了不少資料,均是我的收穫,有需要的也可以進行分享。

如:

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

第三步:刷題

  1. Java築基系列:Tomcat+Mysql+設計模式+併發+Netty+JVM
  2. 開源框架系列:Spring+SpringMVC+MyBatis
  3. 微服務架構:Dubbo+SpringBoot+SpringCloud
  4. 分散式資料庫系列:Memcached+Redis+MongoDB
  5. 分散式通訊系列:ActiveMQ+RabbitMQ+Kafka
  6. 分散式限流系統:Nginx+zookeeper
  7. 一線網際網路大廠歷年真題系列
  8. 演算法寶典

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

面試專題

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

位元組跳動,三輪面試,四個小時,靈魂拷問,結局我哭了但下次還敢

總結

無論是哪家公司,都很重視基礎,尤其是對於應屆生來說,所以在面試前基礎一定要打紮實。面試是一個雙向選擇的過程,不要抱著畏懼的心態去面試,不利於自己的發揮。同時看中的應該不止薪資,還要看你是不是真的喜歡這家公司,是不是能真的得到鍛鍊。其實我寫了這麼多,只是我自己的總結,並不一定適用於所有人,相信經過一些面試,大家都會有這些感觸。

針對以上面試技術點,我在這裡也做一些資料分享,希望能更好的幫助到大家。

需要的小夥伴,幫忙轉發一下,關注後新增助理vx:yunduoa2019或掃描下圖二維碼,跟隨助理指引自行獲取

相關文章