開篇:說清緣由
首先介紹一下我的個人背景,鄙人小康家庭,父母都是普通職業,供我讀書長大不容易,好在我也算爭氣,高考發揮正常,考了個還算不錯的大學,華南地區某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快速進階通道)看頂部提示,或者直接(點擊我)免費領取哦~