三面字節跳動被虐得“體無完膚”,15天讀完這份pdf,終拿下美團研發崗offer

開篇:說清緣由

首先介紹一下我的個人背景,鄙人小康家庭,父母都是普通職業,供我讀書長大不容易,好在我也算爭氣,高考發揮正常,考了個還算不錯的大學,華南地區某211。今年的金三銀四本是想好好拼一把,奈何受到疫情影響,只能將自己的計劃縮減又縮減,所以第一家選擇去面試的字節跳動,奈何三面被虐得“體無完膚”,好在自己並未氣餒,複習15天后去面試了美團,最終4面拿下了offer。

文章以下內容主要是分享面經和個人的學習建議,內容涉及到很多PDF文檔(面試題庫、學習筆記、實戰文檔、腦圖等),由於文章有限,需要這些文檔的,直接(點擊我)免費領取

字節跳動三面面經

字節跳動一面面試題:

  • 自我介紹
  • 聊聊項目,時間大概15種左右,面試官會根據項目的一些設計點來提問,提前做好準備,別自己坑了自己
  • 分佈式鎖是鎖住一部分還是整個系統,既然是鎖住整個,爲什麼不用消息隊列?
  • 詳細講下怎麼用 mq 實現的最終一致性,還有怎麼利用的消息事務?
  • tcp 於 http 的關係,如何基於 tcp 實現 http
  • Java 打開一個 http 流不關閉的後果
  • io 流是基於抽象類還是接口實現的
  • 數據庫的樂觀鎖和悲觀鎖是什麼
  • 樂觀鎖實現原理,講到一半,來寫一個樂觀鎖吧
  • java 的類中有什麼方法
  • 線程安全是什麼?
  • volatile 和 synchorized 的區別
  • 假如有一個類 A 和一個 類 B,這兩個類都有一個變量和一個自增操作,A 類的變量用 volatile 修飾,B 類沒有用,B 類的自增操作用 synchorized 修飾,他們都是線程安全的嗎,如果都是,那爲什麼要用 synchorized ,volatile 不是更輕量嗎,synchorized 有什麼作用。
  • 智力題:島上有羣人,各自戴着紅帽子或者白帽子,但都不知道自己帽子顏色,只有知道自己帽子顏色,第二天才能出島,這時候有個人進來說了句“你們之中至少有一個人戴了頂紅帽子”,問島上的人最後的離開情況
  • 算法:矩陣中的最長上升序列

字節跳動二面面試題:

  • 自我介紹
  • 項目介紹
  • java集合框架全部介紹,從list set queue到map
  • hashmap底層擴容線程安全問題
  • 如果一個對象 要作爲hashmap的key需要做什麼?
  • Threadlocal類以及內存泄漏
  • 線程同步方式,具體每一個怎麼做的
  • jvm類加載雙親委派模式,有沒有能破壞這個模式的方法?類加載整個過程解釋
  • 垃圾回收算法,垃圾回收器有什麼?
  • synchronized用在靜態和非靜態方法的區別
  • 你做項目的思路是什麼,看過什麼源碼,什麼開源網站經常訪間,看是什麼學的的書不?

字節跳動三面面試題:

  • 問項目相關的技術棧(我回答的是MongoDB)
  • 懟問:爲什麼要用MongoDB?爲什麼不用MySQL?MongoDB有哪些特性,能說一下嗎?
  • 文檔型數據庫有哪些?ES與MongoDB有什麼區別?爲什麼ES搜索更快?
  • 數據庫都有哪些類型,關係型數據庫和NoSQL有什麼區別?
  • NoSQL有哪些?他們的使用場景都說一下
  • 問JVM,類加載到卸載的過程都說一下
  • UML都有哪些圖?如何從這些UML的圖中來實現你的需求設計?
  • 設計模式說一下,Spring源碼看過吧?那說一下設計模式是如何在Spring中體現的?
  • Spring爲什麼要用簡單工廠模式?
  • 微服務瞭解過吧(瞭解過一點),微服務都有什麼好處?
  • 微服務都有哪些框架或中間件?
  • SpringCloud都有哪些組件啊?和阿里開源的這些有什麼不同呢?如果要你用你該如何選擇?
  • SOA瞭解過吧?那什麼是SOA?SOA與微服務相比有什麼優缺點?
  • 如果讓你提高一個系統,你該怎麼做?如果讓你設計一個系統,你要考慮哪些方面?
  • 對什麼技術比較熟悉(回答的Java多線程),JDK提供了什麼來實現線程安全啊?
  • 超線程是什麼?知道嗎?(頓時懵了,啥啊,沒聽過)
  • 對未來的技術有什麼規劃?你爲什麼要學這些技術?

字節跳動面試題答案+解析:

image

美團點評四面面經

美團點評一面面試題:

  • 介紹項目(我說了用了分佈式鎖,然後就開始針對分佈式進行提問了)
  • 分佈式鎖的實現
  • 分佈式鎖過期解決
  • 前綴樹是什麼?前綴樹的使用場景?
  • 分佈式數據庫主從複製(我說我不會分佈式的,我會主從複製,然後面試官叫我講講)
  • MySQL 死鎖發生的原因和解決
  • MySQL 分別建立索引 a,b,c ,語句 select ...where b=x,c=x,a=x 能不能用到索引,建立聯合索引能不能用到,a=x,b>x,能不能用到,用到幾個索引?
  • B 樹和 b+ 樹的區別 b+ 樹的優點
  • Linux cpu 滿了怎麼排查?
  • 怎麼查看佔 cpu 最多的線程?
  • Linux怎麼搜索文件中的字符串,寫到另一個文件中
  • liunx 網絡相關命令
  • 如何判斷鏈表是否有環
  • Java = 和 equals的區別
  • Java contentMap 和 HashMap 什麼區別,線程安全怎麼實現
  • HashMap 怎麼解決哈希衝突,哈希衝突還有什麼解決方法
  • Java 運行時異常和檢查性異常
  • Java 類加載
  • 什麼是泛型 泛型的使用場景
  • 面向過程和麪向對象(一緊張差點三大特性的多態想了十秒才說出來)
  • 多態是什麼?父類如何調用子類的方法
  • 問我看了啥書(設計模式,圖解HTTP,Modern PHP...被打斷然後開始問設計模式)

美團點評二面面試題:

  • 自我介紹
  • 進程調度、虛擬內存、進程與線程的區別、如何判斷進程是否發生了內存泄漏
  • 常見的設計模式
  • tcp與udp區別、tcp三次握手和四次揮手、流量控制、擁塞控制(四個算法,問得很細)
  • 分佈式事務(並說一下2PC)、redis底層數據結構有哪些、持久化方式
  • B+樹索引和hash索引的區別
  • redis分佈式鎖,其他實現方式,zookeeper如何實現的?
  • 分佈式的一致性,強一致性和最終一致性
  • Linux如何查看IO讀寫很高
  • 集羣腦裂
  • Linux中異步IO是如何實現的,消息隊列如何實現的?
  • Redis持久化,“併發高,數據量小”和“併發低,數據量大”,redis怎麼選擇存儲模式
  • Mysql主從複製原理,mysql中如何做故障轉移(容災)
  • Nginx生命週期
  • 疫情期間,如果讓你去調研所在城市口罩的可用量,有哪些方案?

美團點評三面面試題:

  • Java數據類型,同步機制
  • hashmap correnthashmap?
  • Threadlocal原理?
  • 講講貪心算法
  • 併發量很大,服務器宕機。你會怎麼做?
  • 如果線上用戶出現502錯誤你怎麼排查?
  • 說一下你平時的學習方法?
  • 能告訴我你的博客地址嗎?(當然可以啊,難道我要說不告訴你嗎)
  • syn和lock的區別,哪個更好?
  • 怎選擇 三次握手,第三次失敗了,失敗怎麼辦?爲什麼四次揮手?
  • hashmap源碼,爲什麼8個節點變成紅黑樹 又爲什麼到了6個節點才恢復爲鏈表?(泊松分佈)
  • 緩存穿透,怎解決?
  • 負載均衡算法的實現
  • 輪詢和隨機的缺點?
  • 分佈式服務治理
  • dns迭代和遞歸的區別
  • 算法:最大回文串

美團點評HR面:

  • 自我介紹,抓住介紹的點讓你詳細說說?
  • 爲什麼實習經歷只有一個月?
  • 爲什麼不去找其他的實習?
  • 其他的面試流程?
  • 考慮去哪裏工作,北京是唯一選擇嗎?
  • 爲什麼來美團?你對美團技術團隊的瞭解有多少?

美團4面面試題完整答案+解析:

image

被字節慘虐後,我是如何拿下美團offer?

(1)第一步是關鍵:調整心態

由於字節跳動面試沒有通過,所以多少都受到了一些影響,所以接下來的面試中,最關鍵的一步就是要調整自己的心態,以防被自己的消極心態所影響,因爲一旦從心底否定了自己,面試過程中就容易出現語言不流暢、說話沒邏輯、條理不清晰、回答不全面,這都是面試中很多面試者容易出現的“致命傷”,所以調整心態,沉着冷靜地面對是非常重要的。

image

(2)第二步要梳理:Java核心知識點(15天時間,讀完這本pdf)

關於第二步要梳理,實際上就是面試過程中,發現自己的知識儲量是比較雜亂的,不知道面試官下一個會問什麼,所以對於Java 的知識點有一個清晰的梳理是很有必要的。關於Java核心知識點,手上也有一本整理好的pdf文檔,需要這份文檔的可以直接我私信獲得~

這份文檔涵蓋了很多知識技術點,包括Java部分(基礎,併發,多線程,JVM等)、數據結構與算法、開源框架(Spring,Mybatis,MVC,Netty,Tomcat)、分佈式(Redis,Zookeeper,kafka,RabbitMQ,負載均衡等)、微服務(SpringBoot,SpringCloud,Dubbo,Docker)。

image

(3)第三步要飛躍:惡補+刷題

關於第三步,就是要做到讓自己有一個質的飛躍。對於惡補和刷題這兩個方面,我自己也整理了我個人的一些資料,也是我自己的一些做法,希望具有參考性:

  • 實戰系列:Spring全家桶+Redis等

image

  • 其他相關的電子書:源碼+調優

image

  • 大廠面試題題庫:BAT、字節跳動、美團、網易、拼多多、滴滴等

image

結尾:錦上添花

代碼改變世界,要早日成爲明日大牛,程序員肩上的擔子可是很重啊。趁現在開始,還不晚!

最後祝願你也能順利拿下大廠offer,共勉!

以上文章內容中所談及到的面試資料、學習資料、學習筆記等等,均可以免費分享,需要這些PDF的小夥伴,關注我的專欄(Java快速進階通道)看頂部提示,或者直接(點擊我)免費領取哦~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章