<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          社招兩年半 10 個公司 28 輪面試面經(jīng)

          共 6698字,需瀏覽 14分鐘

           ·

          2022-06-30 09:41

          個人情況

          • 學歷:二本
          • 工作年限:2 年半

          面試準備

          復習

          你信我,真學習還得看書,看書能讓你的知識體系更加健全。

          當然,平時也可以看一些大佬的文章擴充一下知識庫。

          我看過的 Java 相關的書單如下:

          • Java:《Java 并發(fā)編程的藝術(shù)》、《Java 并發(fā)編程實戰(zhàn)》

          • JVM:《深入理解 Java 虛擬機》第三版、《深入 Java 虛擬機:JVM G1GC 的算法與實現(xiàn)》、《新一代垃圾回收器 ZGC 設計與實現(xiàn)》、美團技術(shù)團隊相關 JVM 的文章、R 大相關 JVM 文章

          • MySQL:《MySQL 技術(shù)內(nèi)幕:InnoDB 存儲引擎》、《高性能 MySQL》、《MySQL 實戰(zhàn) 45 講》、《從根兒上理解 MySQL》、《從零開始帶你成為 MySQL 實戰(zhàn)優(yōu)化高手》

          • Redis:《Redis 設計與實現(xiàn)》、《Redis 開發(fā)與運維》、水滴與銀彈Redis 系列文章

          • Kafka:半獸人博客、《Apache Kafka 實戰(zhàn)》

          • Zookeeper:《從 Paxos 到 Zookeeper:分布式一致性原理與實踐》

          • 架構(gòu):《鳳凰架構(gòu)》、《領域驅(qū)動設計:軟件核心復雜性應對之道》

          還有一個點是,看書的時候可以嘗試記一下筆記,這樣效率會高一些,不至于看完就忘記了。

          沒有開源的書籍,我建議可以支持一下原創(chuàng),去買一下實體書或者對應的課程。

          算法

          算法的話,沒有那么多高超的技巧,LeetCode 前 200 道反復刷就行了,應付社招綽綽有余。

          我只刷了 170 道題,面了十幾個大公司,大多的算法題都是原題。

          剛開始刷的時候會很痛苦,堅持幾天,沒有思路的就看答案,看完答案繼續(xù)寫代碼,寫不出代碼繼續(xù)看答案,反反復復堅持下來算法就搞定了。

          簡歷

          簡歷的話,從大學畢業(yè)到現(xiàn)在,我一直用的是超級簡歷:https://www.wondercv.com/ ,我感覺挺好用的。

          至于怎么寫簡歷,我也不是專家,不說些花里花哨的,直接給一個我的簡歷模板吧,僅供參考。

          提一個點,你寫的簡歷就是劃了一個知識范圍,然后讓面試官從題庫里面選題,如果你自己劃的知識點你都不清楚,那你面試肯定沒有把握的。所以,一定要對你簡歷上面的每一字負責,要對你在簡歷上寫的每一個技術(shù)點都熟悉。

          面試過程

          自我介紹

          自我介紹是簡歷的精簡,不需要說一些沒意義的事情,面試官也不關注你喜不喜歡打籃球,愛不愛唱歌,你只需要把你做過的最牛逼的事情,解決過的最復雜的問題出來就行了。

          舉個例子:

          面試官你好,我叫 CoderW,19 年畢業(yè)于哈佛大學。

          從畢業(yè)到現(xiàn)在一直從事后臺研發(fā)相關工作。

          19 年-22 年在谷歌中間件團隊,主要負責 xx 中間件的設計與開發(fā),在這期間,完成了對 xxx 進行改造和優(yōu)化,整體性能提升了 80%;

          22 年去了微軟電商團隊,負責微軟電商體系的設計,兩年的時間,完成了微軟電商從 0 到 1 的搭建過程。上線至今,日活量達到了 10 億,系統(tǒng)平均 QPS 達到 1W。

          這一次應聘的是貴公司中間件團隊的資深專家崗位,在業(yè)務方向和技術(shù)棧方面,我個人認為我的匹配度還是比較高的,非常希望能夠加入貴公司,一起打造 xx 系統(tǒng)。謝謝!

          技術(shù)討論

          自我介紹完之后,一般就是技術(shù)討論環(huán)節(jié),這個環(huán)節(jié)一般 30 到 50 分鐘,是整個面試最重要的一個環(huán)節(jié)。

          1. 不卑不亢

          記住,這個環(huán)節(jié)是技術(shù)討論環(huán)節(jié),不是問答環(huán)節(jié)。一場好的技術(shù)討論一定是有來有回,而不是單方面的你問我答。

          在尊重面試官的前提上,可以對面試官的一些結(jié)論提出質(zhì)疑和探討,在我看來,敢于提出自己的不同看法是一個加分項。

          如果遇到不尊重你,甚至侮辱你的面試官,我建議你直接把簡歷要回來,大家都是打工人,有什么好裝的?

          2. 真誠以待

          有些面試官喜歡問一些比較冷門的知識來驗證候選人的技術(shù)深度,這是一個很正常的事情,你也不需要太過于緊張,真誠一點,會就是會,不會就是不會,沒什么關系。

          千萬不要自作聰明強行去編造,真誠永遠是第一要義!

          3. 深入發(fā)散

          如果聊到你熟悉的一個知識點,你一定要好好把握,可以嘗試著深入和發(fā)散,讓面試官慢慢的進入你的節(jié)奏。

          舉個例子,聊到 Kafka 零拷貝的時候。

          1. 深入:你可以繼續(xù)深入,聊一下 sendfile+DMA Scatter/Gather。
          2. 發(fā)散:深入后再發(fā)散,聊一下為什么 RocketMQ 寫日志用到了零拷貝,但是 Kafka 寫日志的時候不用零拷貝。

          深入是展現(xiàn)你對技術(shù)的了解程度,發(fā)散是展示你的視野寬度。

          回答完一個問題之后,可以小小的總結(jié)一下,這樣不至于你一個人在那里講的云里霧里,讓面試官都找不到你想要表達的重點了。

          編程環(huán)節(jié)

          如果你的工作年限不是太長,技術(shù)討論環(huán)節(jié)過后一般會有一個編程環(huán)節(jié)(這個環(huán)節(jié)也有可能會放到技術(shù)討論之前)。

          編程題分為兩種,一種是算法題,一種是語言技巧題。

          算法題可能大家都能理解,像什么“兩個線程交叉打印 A 和 B”、“手寫單例模式”、“手寫一個簡單工廠設計模式”就屬于語言技巧題。

          算法題上面提過了,狂刷就行;語言技巧題也就那幾個,背一下就好。

          反問環(huán)節(jié)

          個人認為,反問環(huán)節(jié)沒啥用,根本就不能改變整個面試結(jié)果。

          所以我一般就固定兩個問題:

          1. 我面試的這個崗位需要用到哪些技術(shù)棧?
          2. 我面試的這個崗位的最大挑戰(zhàn)是什么

          面經(jīng)

          面經(jīng)奉上,不是很全,希望有幫忙。

          順豐

          1. HashMap,擴容過程,怎么解決哈希沖突?
          2. 聊了一篇之前寫過的 MySQL 的一篇博客,講講 MySQL 慢 SQL 優(yōu)化思路?解決流程,應該從哪些方面考慮?
          3. APM,怎么監(jiān)控,原理是什么?Java Agent 了解過嗎?
          4. G1,最大的特點,標記位圖,卡表卡頁,SATB。
          5. 介紹 TiDB,什么是分布式數(shù)據(jù)庫?和 MySQL 比優(yōu)缺點是什么?
          6. 怎么做數(shù)據(jù)冷熱分離?怎么做分庫分表?為什么要用 ES?
          7. 分布式事務幾種實現(xiàn)方式,講講本地消息表、盡最大努力通知、TCC。你們選用的是什么?AT 有什么問題?
          8. 報表 DSL 優(yōu)化,享元模式優(yōu)化過程,優(yōu)化效果怎么樣?
          9. 單機和微服務的區(qū)別,微服務有什么問題?數(shù)據(jù)一致性問題怎么解決?冪等問題怎么解決?
          10. 現(xiàn)在負責的系統(tǒng)分為幾個模塊?如何劃分?怎么治理?
          11. MQ 使用場景有哪些?在項目中具體哪些地方用到了?
          12. MQ 消息發(fā)送不在 MySQL 事務中如何保證一致性?
          13. Kafka 四個選舉,Controller 選舉、Partition leader 選舉、GroupCoordinator 選舉、消費組協(xié)調(diào)器選舉。整體設計問題,使用場景,流量規(guī)劃怎么做的?
          14. 緩存使用的具體場景,一致性問題,緩存使用常見問題有哪些?
          15. 熔斷和降級的區(qū)別,具體使用場景有哪些?
          16. QPS 和 TPS 的區(qū)別是什么?你們系統(tǒng)的最大 QPS 是多少?QPS 大了會有什么問題,怎么解決?
          17. 如何設計一個 RPC 框架?需要考慮哪些點?
          18. 有沒有關注新技術(shù)?log4j2 問題關注沒有?能簡單介紹一下嗎?

          總結(jié):面試難度偏低,總監(jiān)面基本是聊一下場景設計問題,面試體驗很好,總監(jiān)特別尊重人,強烈好評。待遇還行。


          拼多多

          1. 介紹自己做過的最滿意的一個項目
          2. 介紹 TiDB、RocksDb、levelDB、LSM 樹、SSTable。
          3. XXL-Job 二次分片怎么做的?有些什么問題?怎么去優(yōu)化的?
          4. HashMap 的位操作,HashSet 的 contains 方法復雜度是多少,紅黑樹簡單講一下?
          5. byte[] a = new byte[10 * 1024]內(nèi)存分配過程?多大的對象直接進入老年代?通過什么參數(shù)配置?
          6. 介紹 TLAB,PLAB,CAS 分配。
          7. 為什么要指針壓縮,為什么能指針壓縮?原理是什么?
          8. 類加載過程?類隔離了解過嗎?
          9. 多態(tài)和重載的底層實現(xiàn)原理,字節(jié)碼層面的了解過嗎?
          10. Springboot 自動裝配,SPI 原理講一下?
          11. 攔截器和過濾器的區(qū)別?使用場景?
          12. Spring 事務實現(xiàn)原理,Spring 的 ACID 如何實現(xiàn)的?如果讓你用 JDBC 實現(xiàn)事務怎么實現(xiàn)?
          13. MySQL 的鎖,表級鎖是哪一層的鎖?行鎖是哪一層的鎖?
          14. MySQL 索引?B+樹?主鍵索引每一個節(jié)點的大小?一個 page 多大?如果一條數(shù)據(jù)大于 16KB 怎么存?text 最多存多少數(shù)據(jù)?行溢出問題?數(shù)據(jù)存儲格式有哪些?溢出頁如何管理?
          15. Redis ssd,Redis 內(nèi)存空間優(yōu)化的點,embstr 和 row、intset、ziplist。
          16. Kafka 的服務端的物理存儲架構(gòu)是什么?零拷貝,mmap,sendfile、DMA gather。
          17. 你做的方案怎么讓別人信服?要考慮哪些點?你是怎么做的?有哪些你覺得可以改進的地方?
          18. 如果系統(tǒng)流量突然上升 10 倍,怎么處理?100 倍呢?
          19. 白板編程:單例模式,為什么要加 volatile
          20. 白板編程:用棧實現(xiàn)一個線程安全、高效的隊列
          21. 白板編程:二叉樹兩個節(jié)點的距離

          總結(jié):一面難度較高,會一直追問問到你不會為止,后幾輪的面試偏業(yè)務和設計,比較輕松。待遇拉滿。


          美團

          1. 多少個服務,多少臺機器?K8S,怎么做到隔離?
          2. 服務之間的數(shù)據(jù)一致性怎么做?業(yè)務上怎么保證?
          3. TCC?二階段提交,三階段提交?
          4. Synchronized,偏向鎖聊了很久聊到了源碼,升級過程,Synchronized 的 JVM 源碼?(面試官對 JVM 很感興趣)
          5. 安全點,安全點的作用?一些 JVM 源碼(之前的文章寫過,面試官和感興趣)
          6. 垃圾回收算法;PS+PO,CMS 為什么要用標記清除算法?CMS 的前身,R 大的文章。
          7. ZGC,聊到了彭寒成的《新一代垃圾回收器 ZGC 設計與實現(xiàn)》和美團技術(shù)團隊的文章。
          8. G1,聊到了中村成洋的《深入 Java 虛擬機:JVM G1GC 的算法與實現(xiàn)》。
          9. 寫屏障和讀屏障的區(qū)別是什么?
          10. JMV 優(yōu)化過程,效果。為什么要升級垃圾收集器?
          11. 介紹一下 Spring IOC,注解和 XML 兩種方式有什么區(qū)別?后置處理器,擴展點有什么用?在項目中有用到過嗎?
          12. MySQL 的 binlog、redo log、undo log 寫入過程?刷盤機制和參數(shù)設置。MVCC 機制了解嗎?
          13. 遇到的死鎖問題?唯一鍵沖突導致的死鎖問題,MySQL 為什么要這么設計?隱式鎖是什么了解嗎?
          14. 還了解 MySQL 的哪些鎖?間隙鎖、臨檢鎖.....
          15. ZK 的選舉過程是怎么樣的?如果選舉過程中網(wǎng)絡故障怎么辦?ZAB 和 RAFT 的最大區(qū)別是什么?
          16. Redis 用的 Gossip 協(xié)議有哪些具體消息?謠言傳播,為什么要去中心化?有哪些優(yōu)缺點?
          17. Redis 分布式鎖和 ZK 分布式鎖的比較。AP 和 CP,CAP 理論講一下?
          18. Kafka 的優(yōu)勢是什么?RocketMQ 延遲隊列怎么做的?如果讓你優(yōu)化你會怎么做?Kafka 能實現(xiàn)延遲隊列嗎?
          19. Kafka 能保證數(shù)據(jù)一條都不丟失嗎?為什么?業(yè)務上丟數(shù)據(jù)了怎么辦?
          20. 白板編程:順時針打印矩陣

          總結(jié):美團的面試官很喜歡問并發(fā)編程和 JVM,一面一直在聊這些東西,后幾輪的面試偏業(yè)務和場景問題,比較輕松。

          面試官很尊重人,還加了面試官的微信,后來面試官還給我打電話要我去美團,因為有其他選擇了就拒掉了,祝好!


          字節(jié)

          總結(jié):算法難度拉滿,一輪一道算法,因為面的是 GO 崗位,對基礎要求比較高,沒有問太多 Java 的知識點。待遇不錯。


          58 集團

          1. MySQL 遷移到 TiDB 做了哪些工作,自增主鍵,數(shù)據(jù)量多大?
          2. TiDB 的性能問題,做了哪些調(diào)研?TP90、TP95 是多少。
          3. TiDB 上線步驟是怎么樣?怎么做到數(shù)據(jù)不丟失?怎么保證可靠性?
          4. XXL-Job 怎么封裝的?任務跑失敗了怎么辦?
          5. DAG 是如何實現(xiàn)的?二次分片怎么做的?
          6. Redis 使用場景、緩存什么數(shù)據(jù)?怎么保證數(shù)據(jù)一致性?
          7. 還了解 Redis 哪些知識、Redis 的優(yōu)勢、CP 還是 AP?CAP 理論。
          8. Redis 存儲數(shù)據(jù)需要注意哪些問題?熱 key 問題、大 key 問題怎么處理?
          9. Redis 分布式鎖、紅鎖。紅鎖有什么問題?
          10. 介紹 SpringBean 創(chuàng)建過程、AOP 實現(xiàn)原理?
          11. BeanFactory 和 FactoryBean 的區(qū)別?
          12. Spring 是怎么解決循環(huán)依賴的?Spring 解決構(gòu)造方法注入的循環(huán)依賴了嗎?解決多例下的循環(huán)依賴了嗎?
          13. 動態(tài)代理,JDK 動態(tài)代理和 CGlib 動態(tài)代理的區(qū)別?Spring 是如何選用的?怎么配置?
          14. 如何做降級的?如何做限流?
          15. 負載均衡算法有哪些?自適應負載均衡怎么做的?有什么問題?怎么優(yōu)化的?
          16. Java 的集合都有哪些,都有什么特點?
          17. HashMap、ConcurrentHashMap 的區(qū)別?擴容過程是怎么樣的?
          18. 介紹 AQS、CountDownLatch、Semaphore、volatile、synchronized
          19. 線程池、自定義線程池、自定義拒絕策略有了解過嗎?什么場景用?

          總結(jié):面的是風控部門,老牌公司了,面試難度較低,錢也給的少。


          滴滴

          1. 進程和線程的區(qū)別是什么?進程之間怎么通信的?線程之間呢?
          2. HTTPS 和 HTTP 對比;CA 數(shù)字證書;對稱加密非對稱加密過程?
          3. 常見的加密算法有哪些?
          4. MySQL 測試,TiDB 測試,如何做到平滑遷移?如何保證數(shù)據(jù)不丟失?
          5. 任務調(diào)用中心怎么做的?負載均衡?怎么收集執(zhí)行器的 CPU 和內(nèi)存使用情況?任務分片是怎么做的?
          6. 任務冪等性改造?ZK 怎么部署的,幾臺機器,掛了一臺怎么辦?
          7. ZAB 協(xié)議,ZK 選舉過程,ZXID 的結(jié)構(gòu)是怎么樣的?ZXID 有什么用?
          8. Redis 的 String 底層結(jié)構(gòu),hash 底層結(jié)構(gòu),rehash 過程是怎么樣的?
          9. Redis 的 AOF 和 RDB 區(qū)別,能配合使用嗎?熱 key 問題和大 key 問題怎么解決?
          10. Kafka 的 log,index,稀疏索引。零拷貝,mmap,sendfile、DMA gather
          11. Kafka rebalance 策略,具體過程。GroupCoordinator 選舉、消費組協(xié)調(diào)器選舉過程?kafka 默認 topic 干什么用的?
          12. Spring 的循環(huán)依賴怎么解決的,為什么需要加個三級緩存,二級不行么?
          13. Springboot 有什么特點,了解 springboot 的自動裝配原理么?
          14. 寫了一道 LeetCode 原題,交換鏈表節(jié)點。

          總結(jié):面的是網(wǎng)約車部門,主要語言是 GO,面試體驗不錯,面試官比較尊重人,錢給的還行。


          歐科云鏈

          1. QUIC/HTTP3 了解嗎?
          2. 用筆畫 MySQL 一條記錄的入庫過程,寫日志過程,日志兩階段提交?
          3. JVM 調(diào)優(yōu)過程?怎么發(fā)現(xiàn) JVM 的問題的?怎么做預警處理?
          4. Minor GC 與 Full GC 的觸發(fā)機制是什么?
          5. Eden 和 Survivor 比例可以調(diào)整么,參數(shù)是什么?還用到了哪些參數(shù)?
          6. 介紹 TiDB 和 MySQL 的遷移過程?遇到了些什么問題?怎么解決的?
          7. 了解 RocksDb 嗎?levelDB、LSM 樹、SSTable?
          8. Paxos 算法了解嗎?介紹 RAFT 和 ZAB,以及它們之間的區(qū)別?會有腦裂問題嗎?為什么?
          9. Kafka 消息的寫入過程簡單介紹一下,Kafka 為什么這么快?
          10. Kafka 幾種選舉過程簡單介紹一下?
          11. Kafka 高水位了解過嗎?為什么 Kafka 需要 Leader Epoch?
          12. Netty 用到過嗎?講講 reactor。Netty 的空輪詢 bug 有了解嗎?
          13. 講講 BIO、NIO、AIO 的區(qū)別?
          14. Dubbo 的服務發(fā)現(xiàn)是怎么做的?
          15. Redis 的幾種數(shù)據(jù)結(jié)構(gòu),底層分別是怎么做的?用 Redis 緩存什么數(shù)據(jù)?怎么更新數(shù)據(jù)?怎么淘汰數(shù)據(jù)?
          16. 緩存和數(shù)據(jù)庫一致性問題怎么解決?為什么要刪緩存而不是更新緩存?刪緩存刪失敗了怎么辦?
          17. 有一個包含 100 億個 URL 的大文件,假設每個 URL 占用 64B,請找出其中所有重復的 URL。
          18. 給了一張紙,上面有一段并發(fā)的代碼,問執(zhí)行結(jié)果是什么,考的是 volatile。

          總結(jié):面的是數(shù)字貨幣交易系統(tǒng),去現(xiàn)場面的試,畫了很多架構(gòu)圖。面試體驗很好,還加了面試官的微信。待遇不錯,而且可以居家辦公。

          京東

          1. 介紹一下你做的項目?

          總結(jié):這個面試官放了我兩次鴿子,后面突然打電話過來,我匆匆忙忙接電話,介紹完項目之后,他隨便問了幾個問題就結(jié)束了,整個過程不超過 10 分鐘。可能是因為我不是東哥的兄弟?

          結(jié)果

          說一下結(jié)果吧,除了京東,其余的都拿到了口頭 offer。

          至于為什么沒有面阿里和騰訊,因為那個時候阿里和騰訊在進行財年清算,鎖 HC 了,也就沒有面了。

          至于為什么字節(jié)的面試題沒寫,懂得都懂,可以私下交流。

          最后,祝大家都能成為 offer 收割機!

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费特级黄色片 | 男女操逼网站视频在线播放 | 无码在线播放免费 | 国产毛片18水真多18精品 | 偷拍激情五月综合网 |