僅靠七個步驟,4面通過拿offer,終“跳進”字節(jié)跳動
前言
5年前,BAT沖到了風口浪尖,美國上市的阿里成為中國體量最大的互聯(lián)網公司,騰訊借助微信成為移動互聯(lián)網的霸主,外企開始撤離中國,國企的光環(huán)也慢慢褪去。
到了近年,應屆畢業(yè)生心中最炙手可熱的公司換成了TMD及各路獨角獸公司,這些公司代表著科技最前沿,能夠許諾高薪和美好前景。
而字節(jié)跳動則成為我的人生目標。
今天,通過4面,終“跳進”了字節(jié)跳動,而拿下字節(jié)offer,也多虧了我自己的這起個步驟。
注意:以下關于字節(jié)跳動的面試題答案+解析、Java學習資料、電子書、思維腦圖、視頻、面試題等,均存在盤里,需要的私信我【學習】就能免費領取了~

歷經4面,“跳進”字節(jié)跳動
字節(jié)跳動一面:
自我介紹
tcp和udp區(qū)別,應用場景
tcp三次握手,為什么有第三次?
講一下get和post區(qū)別,其他命令
講一下進程和線程區(qū)別,什么時候用多線程?怎么保證線程安全?
synchronized的使用,是對什么加鎖?
棧和隊列,怎么用棧實現(xiàn)隊列?
垃圾回收算法,復制算法中存活對象太多怎么辦?
可達性分析,GC Root可以是哪些對象?
hashmap底層實現(xiàn),put get過程,擴容,為什么容量為2的倍數(shù)?
java基本類型,基本類型間的轉換(short+int得到int類型,不能直接把int型賦給short型)
String類,字符串相加+的底層操作,StringBuilder和StringBuffer
算法:給一個數(shù)組,使數(shù)組奇數(shù)在前半段,偶數(shù)在后半段,在原數(shù)組上操作。
字節(jié)跳動二面:
多個項目的技術架構,不是業(yè)務架構 MySQL,Redis,Nginx,Kafka這些技術架構
項目技術點,學到了哪些?也要具體知識點。
MySQL中為什么是最左前綴?
有沒有接觸過一些自動熔斷工具
502可能的原因有哪些?
線上問題怎么排查?Full GC頻繁怎么辦?
服務的QPS,數(shù)據庫的架構和版本。
SpringBoot的優(yōu)缺點分析
SpringBoot的啟動源碼分析
服務的部署方式?
算法題目:按照之字形分層遍歷二叉樹,要求bug free,并且構造二叉樹進行測試。
字節(jié)跳動三面:
jdk8默認的垃圾回收器, 知道哪些垃圾回收器? G1詳細說一下
synchronized關鍵字的底層是什么?
線程之間哪些資源是共享的? 什么是獨享的?
堆和棧有什么區(qū)別?
linux查看資源的命令?怎么樣查看哪些端口被占用了
linux內存中swap是什么? 什么用?
用戶態(tài)和內核態(tài)的區(qū)別? 為什么要有用戶態(tài)內核態(tài)區(qū)別?
中斷有哪些類型,區(qū)別?
死鎖概念?條件?
算法題:奇數(shù)位遞增偶數(shù)位遞減的數(shù)組,排序
get,post區(qū)別?
get可以緩存?在INTP(?沒聽懂在哪)里是怎么實現(xiàn)的?
寫sql,group by的查詢?
mySQL的搜索引擎?innodb和myISAM的區(qū)別
HRBP面:
自我介紹
為什么在看機會呢?在看什么類型的機會呢?
為什么看頭條的機會?
你覺得頭條是一家什么樣的公司?
朋友同事如何評價你?
平時都有哪些興趣愛好呢?
在原公司最享受的階段是什么時候?為什么
你對我們的業(yè)務方向了解嗎?
你對我們的業(yè)務方向和技術感興趣嗎?
吸收經驗,參考總結,制定計劃,實施行動
所謂的列出計劃,實際上就是在我們的學習方式上,要有一個明確的目標和步驟,不管你是學習什么類型的,都要有一套自己的學習計劃,否則很容易出現(xiàn)“漫無目的”的情況。
那么一個計劃應該怎么制定呢?以下就是我制定計劃的一個步驟:
Step1:時間規(guī)劃
首先第一步就是要有屬于自己的一個時間規(guī)劃,所謂的時間規(guī)劃實際上就是時間管理,比如你要學習某一個技術棧時,規(guī)定一個時間段,要求自己完成。
附上我之前的一個時間規(guī)劃表:


Step2:列出要學習的知識點
列出要學習的知識點,首先要列出學習的技術棧,然后關于這個技術棧我們要學習到哪些知識點,比如要學習Redis,那么除了Redis基礎部分以外,那就需要了解緩存、持久化機制、雪崩、穿透等。再高級一點的技巧,就包括BloomFilter,RedisSearch,Redis-ML了。
Java核心知識點:

Step3:畫腦圖(Xmind)
我們在學習的過程中,要學習如何去畫腦圖,這個是我一直以來保持的習慣,因為清晰的結構圖對我們的思維是能夠起到梳理作用的,能夠清晰的了解,如何學習?如何學好?學到什么程度?
以Redis腦圖為例:
除了Redis腦圖以外,我還整理了Spring、SpringBoot、MySQL、JVM、Kafka、Docker等相關腦圖。

Step4:做筆記
俗話說,好記性不如爛筆頭,實際上做筆記對于我們每一個人都非常重要,無論是在看一些技術類文檔還是刷面試題的時候,自己認為感觸比較深的,可以記錄下來,之后再去翻閱時,會有不一樣啟發(fā)。當然,我自己主要做了一些使用類的筆記,如SpringBoot筆記、Redis筆記等。
Java核心知識筆記:

Step5:看書(電子書)
書中自有黃金屋,無論讀什么書籍,對自己都是有提升的,編程類的書籍太多,買實體書籍確實不太方便,所以建議平時能夠翻閱一些pdf文檔也是可以的,大部分的人閱讀習慣也都漸漸在往電子書轉,我自己倒是看過不少電子書了,實戰(zhàn)類的、源碼解讀類的都有不少。
SpringBoot實戰(zhàn):

Spring源碼深度解析:

Step6:看視頻
看書看不進,那就看視頻,相信還是有不少小伙伴是喜歡跟著視頻學習的~關于視頻,我下班后偶爾也會刷一刷,網盤里躺了不少大佬的視頻課程,說實在的,確實比看書的效率要高很多,許多不懂的問題一撥就通了。


Step7:刷題刷題
不管社招還是校招,刷刷題對自己還是有好處的,對大廠的面試問什么起碼有一個了解。刷題的方法有很多,所以看自己的選擇和習慣了,可以去某牛網刷刷題目,不過某牛網針對的是校招,如果崗位比較高級一點的,還是建議去找找資源好了。
我手頭上也有一些Java高級面試題,包括BAT大廠的,也有一些專題整理,需要的可以私信我。

總結
紙上得來終覺淺,只有實踐出真知。
以上說了這么多,希望你多少能夠get到一些,實際上就是想要強調一點,學習的重要性。以上所有資料均能夠免費分享給大家的,希望能夠一起進步,有需要的朋友直接私信我【成長】就可以免費領取~
最后,別忘了轉發(fā)+評論+關注,一鍵三連哦~!
本文就是愿天堂沒有BUG給大家分享的內容,大家有收獲的話可以分享下,想學習更多的話可以到微信公眾號里找我,我等你哦。
