前言
本編內容分享一下大佬的經歷,從三個月之前的2.5實習,到10K+位元組的。在這三個月是怎麼學習!老樣子先分享位元組面經,結尾有驚喜!
位元組跳動一面
- 什麼是jvm嗎
- 什麼是翻譯和編譯
- jvm的記憶體結構
- 作業系統的快取對應jvm的記憶體結構的哪一塊
- 說說jvm垃圾回收的演演算法
- jvm是怎麼回收垃圾的
- 你怎麼知道一個物件是不是可回收(可達性分析)
- 間接物件是不是可回收物件呢
- https的過程,怎麼保證安全
- 為什麼ssl層要採用對稱金鑰通訊
- 對稱金鑰和非對稱金鑰的區別
- tcp/ip的每一層代表的是什麼
- ARP的過程
- ip地址是虛擬ip吧,為什麼使用者端和伺服器端能通通訊
- 傳輸層的最重要的協定
- tcp和udp的區別
- tcp伺服器端如果記憶體滿了,使用者端怎麼處理
- hashmap的原理
- 你瞭解hashtable嗎,如果給你優化,你怎麼優化
- 什麼是執行緒安全
- 你瞭解鎖嗎,synchronized是怎麼保證執行緒安全的
- volatile為什麼能夠保證可見性
- 如何刪除排序連結串列的節點,例如(1->1->1->2->3),結果是(2->3)
位元組跳動二面
- 聊聊專案,你這個專案怎麼優化的,說說過程
- 給你一棵樹,求兩個節點之間的最長距離
- 說一下怎麼設計LRU快取,虛擬碼,哪個hashmap,可以做LRU快取
- 程序通訊的方式,你試試實現其中的一種,虛擬碼
- ClassNotFoundException和NoClassDefFoundError的區別
- arrayblockingqueue的原理,使用場景
- 談談你對實驗室專案的認識,難點,收穫
位元組跳動三面
- 為什麼IPV4都已經用完了,但是我們的ip還是夠用
- 給你一個n,如何得到61n,不能用(+*/)
- 在一個桶中,有1024個數位,每個數位為[1-1024]的其中一個,假如在桶中+x,如何求這個x是多少
- 一個整形n,其中n為最大值,n+1會是個什麼結果。為什麼會這樣?(我是按原碼、反碼、二補數來回答,但是面試官還是不滿意,結論對的,但是原理還不是這樣,可能問底層吧)
- 7給你一個字串"abcd123",右移3位得到"123abcd",給你(char [] chars,int n),求如何能夠不用空間的情況下O(1),能夠移位得到這個結果
- 場景題
-
涉及一個類,例如榨汁機,給你一個"榨汁"的方法,那你怎麼設計這個方法(我回答首先要放原料,所以方法要改一下,為zhazhi(Cailiao cailiao),然後材料包含蔬菜和水果。然後面試官說有可能蔬菜和水果,都不可以榨汁啊,像土豆。所以繼承不是個好想法。我就說有這麼個要要求的話,那我用介面啊,標識這個東西就是可以榨汁,然後實現了這個介面的才能呼叫榨汁機這個方法)
-
25批馬,沒有計時器,5個賽道,求最快的3批,最少次數
-
給你一個時鐘,0:00-23:59,時針和分針重疊了多少次
總結
從2.5K實習到現在的位元組,這就是成長吧。大佬也跟我說:「曾經也無數次擔心基礎不好和短時間沒準備而找不到好工作,但既然選擇了這行,就只能咬牙堅持了,努力交給自己,剩下的交給時間"。
最後把大佬的面試資料和學習筆記免費分享給大家,希望對大家有幫助
資料免費領:戳這裡免費領取,暗號:CSDN
愛程式設計,愛分享,聽說點贊+關注的都進大廠了哦!!!