【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)
說明:本文來源于中華石杉架構班學員 dasthinker 同學在拿下美團、京東兩家互聯網大廠技術專家offer之后的面經總結
簡單自我介紹
本?是?作多年的?枚「?碼農」,對?群?的年輕朋友們,是有點「?」哈,最近?作是在?家幾百人規模的互聯?公司?作。大家可能覺得,這個時期出來看機會,是往?坑?跳嗎?
個?不這么認為,借此疫情的特殊時期,通過企業市場招聘情況也能幫你把握?下?致業務發展?向,這其實是好事。
當然了,招聘崗位有限,狼多?少,崗位競爭肯定?往年更加激烈的,所以需要珍惜每?個機會。
?如在新浪的?位朋友也很缺?,內部還在商討,少量HC還沒有正式放開...本次薪資漲幅還算滿意,具體就不便透露了。在談薪資??,如果你能提前拿到其他公司Offer,且你之前Base還可以,那么還是容易談的。
?試結果:
京東、美團?試已通過。具體定級對標P7上下這樣?吧,個?理解是資深、專家崗,因為進去也基本都是?活的,帶?與否看情況。
?試流程:
京東、美團多個部?都是并??試的,這個沒有正式談薪前都是沒問題的。
京東:三 / 四?技術 + HRBP美團:四?技術 + HRBP + 專職HR
個?感受美團HR專業性、與候選?溝通??體驗相對更好些,因招?旺季,HR也都很忙。
HR職責也會細分,聯系協調?試的有專?的HR、技術?過會HRBP?試,最后都通過確定職級,然后會有專職HR談薪資。
?京東HR...,這??相對美團吐槽也更多?點?,所以后?同學去引起注意即可,如果你是「不確定」的候選?,各種情況可能都會遇到,?家知道就好。
?京東?面試過程總結
?試?式:電話?試,他們都不露臉呀!好處是不??擼代碼了。
京東物流:三輪或四輪技術?
通常?或??是研發同學(即未來跟你?起?作的同事)、?或三?(架構師T7或T8,要給你定級的)、三或四?(部?負責?,也會有技術?)。你的定級是在最后兩?綜合來確定的。
【京東?或??】因為??或??都是研發同學,基本都是常?的?些?試題,也不會很深,群?同學肯定都會。個?在部?內曾推?過 Apollo 配置中?,?試官也會讓你說出實現原理。
京東內部應該是不使??Dubbo 的,他們的RPC框架叫做「JSF」,內部實現機制 應該是跟 Dubbo 很像。所以京東?試官要問RPC,基本都問到 Dubbo 實現原理,內部擴展機制等等,肯定不會問 JSF 了,也沒開源。
【京東架構師?】 項?問的很詳細,說的我很累~ 基本每個項?具體實現?案、亮點都講了?下,遇到的問題。
具體的技術面
JVM & GC 1)你們JVM線上使?的什么垃圾回收算法?CMS、G1
詳細說?下CMS垃圾回收算法回收過程?4個階段
CMS中的remark階段?較慢,怎么分析和解決?
- XX: +CMSScavengeBeforeRemark Remark前提前來?次YGC;增加CMS回收的線程數...
線上如何來分析GC問題?
JVM線上是如何調優的?
1.7和1.8中jvm內存結構的區別?
發?Full GC時會回收Metaspace空間內存嗎?
這里推薦一下「儒猿技術窩JVM專欄」,有不少作者親身經歷的JVM調優實戰案例。感興趣的朋友可以掃碼看看,面試來說足夠用了。
2、數據庫
1)鎖等待問題如何處理??個事務中調?了本地事務,還調?了RPC接??
我說這?涉及了分布式事務了,他說不?,把RPC接?調?放在最后?...然?實際邏輯并不?定都這樣的...他應該是想問出現死鎖、間隙鎖問題應該如何來處理,說了下死鎖的解決思路,沒有太get到點上。
3、緩存 &??并發
1)?并發下緩存與數據庫?致性如何保證?
2)?并發情況下扣減庫存如何處理?如何優化?參考?杉架構筆記?的?章
3)當隊列滿了,核?線程空閑、擴展線程也空閑,誰從隊列?獲取?
4、JUC 1)為什么線程池?要先創建coreSize??的核?線程?2)線程池中的各個參數的含義解釋?下?
4、框架 & 源碼
1)SpringCloud和RPC具體都有哪些區別?
2)SpringCloud中遇到過哪些坑,具體降級了Eureka注冊中?的坑。
3)最近?分鐘上報的次數計算錯誤,bug
4)?我保護機制,剔除Down掉服務器并不是90秒,也是個bug,?少180秒以上。
5、算法題
1)編程珠璣?的?道題:?個40億的?序數字,請找出不存在的數字
2)?個很?的List,??都是int類型,如何實現加和?因為電?,就說了?下思路
京東四?部?領導
1、介紹下項?的亮點,有成就感的項?
2、JVM相關深?
-
1)深?探討了CMS、GC Roots,跨代是如何進?GC的?有點發散,提到了GC Roots Tracing,Rset、Card Table
-
2)ParallelScavenge了解嗎,什么算法?實際是復制算法【?年代可以搭配Serial Old或者Parallel Old】
-
3)為什么不能和CMS?起使?呢??后來聽說這個負責?jvm源碼他都看過,研究很深。
3、MySQL索引如何做優化的?
1)假設有?個表字段??個,索引如何創建的?所有字段都能建嗎?區分度、選擇性、列基數
2)MySQL為什么是B + 樹的結構,為什么不能是紅?樹呢?優化的是什么,優化的是磁盤IO,減少磁盤尋址。
4、MQ隊列?了哪些?答:Kafka。那?融場景下,Kafka如何保證消息不丟失?答:ack = -1,Leader-->ISR寫?所有的follower?
5、Redis?過哪些數據結構?zset底層是什么結構,hash和跳表,為什么是跳表,查找效率?。
6、其他
1)?身優缺點?
2)?句話總結下???
3)對待加班的看法?
接下來,重磅節選美團的兩個部門的面試過程。
?
美團A部??面試過程
?試?式:??客?視頻鏈接,因為可以?擼代碼,?般職級越?,技術?試輪次越多
3-1以下應該是三輪技術?,3-1通常四輪技術?,?、?輪技術和項?負責??,三、四輪是交叉?或部?
領導?,五?是HRBP,六?專職HR談薪?收到offer后接受開始背調,?般需要5個?作?背調結果給到公司,聯系?及?作時間必須準確?誤。
3-2以上據?少五輪技術?,沒這待遇啊。?體這樣,當然每個部?安排順序不?定相同。因為是兩個部?都做了?試,?試官?格也不??樣。
美團A部門一面技術
1、JVM如何優化的?CMS算法執?流程?什么情況下發?的Full GC?
2、分布式事務講?下?結合項?想講的可靠消息?致性實現?案 + 最?努?送達通知?案,最后也提到了單應?多DB(JPA)、TCC事務以及適?場景。
3、ES是如何調優的?副本機制作??寫?doc操作執?過程?
4、其他也都是基礎問題,印象不是很深刻了。
【美團A部門二面技術】
1、將最近做的兩個項?詳細講解 + 現場畫出整體系統架構圖并結合架構圖講解+ 設計模式類圖
我是拿了?張紙,畫出來然后對著電腦屏幕開講,這?試畫?可以想象?下哈,?試官隔著屏幕看。
2、因聊的項?時間?較?,也因為電腦快沒電了,所以接下來?道技術題他出完我很快回答出來了。
3、MySQL數據庫底層實現結構?B+樹結構,也講了數據?,以及??錄相關的
4、Spring Bean循環依賴如何解決的?
5、MyBatis?級緩存如何實現的?
6、有個項??的分布式緩存是CouchBase,要求講下CouchBase基本原理?
7、RabbitMQ如何保證?可?的?queue數據在節點之間如何同步的?死信隊列
如何實現的?
技術回答的很快,最后丟?句「等HR電話」,我是有點懵逼,難道都該聊到hr
?了,這不才2?技術?么。
因為電腦?上沒電了,沒有多問,已經聊了?個半?時了。
后來才知道,是等HR電話通知我約下?個?試官啊。。。果然是好久沒?試了^_^
【美團A部門三面技術】
?講解了項?的從客戶端到后端的具體流程。主要問了?些擴展技術?,?如Http2都有哪些改進的?Redis最新特性了解哪些?等等吧,總體也不是很難的。
【美團A部門四面技術】
1、?我介紹、介紹具體項?突出貢獻
2、離職原因?業務?向如何考慮的?職業規劃?
3、?并發與性能的關系?根據項?經驗?有發揮吧,但盡量還是答案宏觀?點。
4、緩存和數據庫?致性如何保證的?談到了分布式鎖,那詳細講講分布式鎖實現?redis setnx、redisson、zookeeper
5、項?架構中如何做技術選型?
6、有什么要問我的嗎?
【美團A部門五?】
1、為什么要離職,基于什么原因考慮的?
2、你的未來職業規劃是什么樣的?項?中的??是什么樣的?
3、你認為??還有哪些需要提升的嗎?
4、你在團隊中的績效如何?
5、有什么需要問我的嗎?
美團B部?門?面試過程匯總
講真,這個部門面試覆蓋面夠全面的,多數的中間件底層原理必問~
【美團B部門一? 技術】
1、JVM中的CMS和G1垃圾回收算法具體區別?
2、問了兩道線程池相關問題,覺得沒啥問題了 此時,話鋒?轉,咱們聊聊中間件相關吧 【后來聽說,?家是有個?試?模板^+^ ,都是套路哦~】
接下來開始問中間件相關:
1、Dubbo
??? 1.1 說?下Dubbo的具體執?流程,涉及哪些模塊,作??
??? 1.2 使?過過Dubbo哪些特性,做過哪些擴展?Dubbo?的泛化有了解過嗎?
??? 1.3 Dubbo中的注冊中?Zookeeper是如何注冊上去的?
2、Zookeeper
??? 2.1 Zookeeper節點有哪?種類型(臨時、持久)?
??? 2.2 如何注冊的,如何選舉的(選舉算法?),
??? 2.3 如何完成監聽或者說是訂閱的?
??? 2.4 提到了分布式鎖,在Curator框架中是如何實現的,watch機制本地數據結構啥樣的?
3、Redis
??? 3.1 都?過哪些數據類型?分別介紹下使?場景?
??? 3.2 持久化機制,AOF、RDB具體區別有哪些?
??? 3.3 Redis 主從同步機制是怎么樣的,?如slave啟動之后同步過程?
??? 3.4 Redis Cluster集群如何選主的?
??? 3.5 Redis Cluster 跟哨兵模式有什么區別嗎?
??? 3.6 Sentinel 哨兵模式是如何選主的?這?說跟cluster差不多,追問了下,其實還是有些區別的, sdown odown 主觀宕機、客觀宕機?式不太?樣
4、Kafka
??? 4.1??產端是如何發送?條消息到Broker的?
??? 4.2 具體可以調整哪些參數提升吞吐量?
??? 4.3 消費端發?rebalance的過程是怎樣的??如有?個新的consumer加?
??? 到了Group中是個什么流程?
5、?寫算法
?算法題:?個鏈表,輸?k,?如k=3,翻轉前3個鏈表值? 【你擼不出來,也得寫
talk is cheap,show me your code】
?
【美團B部門二?技術】
1、 都是發散探討性的題??如?過CouchBase,那你覺得CouchBase有哪些不?的地?,哪些不夠專注的?
談到專注,我也提到了Redis不夠專注,因為Redis5.0還提供了Stream作為持久化隊列解決?案,Redis應該更專注分布式緩存這塊,反?野?也很?,還要?持類似MQ的功能,并且也參考了Kafka設計思想,所以也不夠專注。
2、??寫多線程題?:T1線程輸出都是A,T2線程輸出的都是B,T3線程輸出的都是C要求三個線程啟動后輸出順序:ABCABCABC
?【還有其他一些發散性題目,就是跟你來探討技術以及實現,由淺?深,看看你是如何思考的,為什么這么來設計?有沒有什么更好的解決?案?】
【美團B部門三? 技術】
部?總監?,主要聊項?,也聊到了Reactor模式。因為已確定去另外?個部?,沒有安排交叉?,或者已經有過交叉?了,如果決定去這個部?也不?定會再重新安排了,
交叉??試官也不是很好約?的,其主要作?就是把把關?已,其決定作?的還是本部?的?試。
?面試前準備&?小技巧
1、?試前準備
儒猿技術群?之前也有?伙伴都做了?量值得借鑒的?經分享了,我也說一下我的面試準備。
我個?主要是通過公眾號儒猿技術窩 + 極客時間 + 架構課程?+?自身項?經驗+ 石杉老師指導為主要?針,這樣基本不會偏離太?的?向,在這?再次感謝?杉?師。
基礎知識必備:
數據結構與算法(如果不是面頭條這種公司,掌握常用數據結構算法就夠了)、Java基礎、JVM、并發、?絡&NIO、設計模式
中間件相關:
緩存(Redis為主)、消息隊列(Kafka、RabbitMQ、RocketMQ)、數據庫(MySQL)、搜索(ES)
分布式相關:
分布式理論(CAP、BASE)、分布式鎖、分布式事務、分布式冪等框架&源碼相關:Spring、MyBatis、SpringBoot、SpringCloud、RPC(如:Dubbo)、Netty等常?框架
架構&容器相關:
微服務架構(架構演進過程)、微服務拆分原則、容器化(了解Docker & Kubernetes)
項?經驗:
項?整體架構(能畫出來)、項?上下游關系(能將明?)、項?實現細節、項?主要亮點
技術之外:
你有什么要問我的嗎?、離職原因?、職業規劃?項?管理??身優缺點?挫敗感的事???身哪些需要提?的?績效怎么樣?突出貢獻?
這些技能要想深?不是短時間內突擊就能完成的,需要?期做項?加上平時的有?的性的學習和積累。技術棧?較多,我個?建議在?試前提前準備階段,通過思維導圖的?式梳理,對抗遺忘曲線,推薦使?ProcessOn?具。
2、?試時?技巧
上?盡管羅列了很多技術棧,但是要盡量做到?個技術棧能更擅??些,?如對 JVM調優、并發、分布式等技術都有深?實踐和研究,或者對某些框架源碼深?研究,并做過?次開發之類的,都是有加分的。
因為?家不可能都是樣樣精通的,也最好別都樣樣稀松,所以關鍵夯實住??擅?的,然后其他技術棧查缺補漏。
同時,在?試中開始?我介紹后,建議你要有意識的說出你擅?的領域、技術棧等。其?的也很簡單,就是將?試官的思路往??擅?的?向引導。不然呢,當?我介紹結束之后,?試官基本就按照他的套路出牌了,或許你此時會有點被動的~
但是,有的?試官也不吃這?套,那你就準備應戰就好了。某些技術你簡歷寫了,?試官正好問到了,但是其實你并不是很擅?,或者時間久沒有了解的很深?,如果追著問,就有點尷尬了?
?般?試官都是結合你簡歷問的,很少?試官是只問他會的東東,如果真遇到這樣的,也是有點尷尬,不?也罷!
小結&問題答疑
最后也提醒各位要換?作的?伙伴,?家加油!
1、社招算法:算法雖然在社招里面占據的比重不大(大概10%),但作為基礎,也是要準備的。我這次也不是很充分,算法還在平時的積累和練習。
2、思維導圖:平時盡量畫?畫思維導圖(processon),對抗技術知識的遺忘曲線。
3、技術應?:這個是重點,將學到的技術應?到項??,使你的項?看上去更有亮點,更有聊的價值。
4、臨場應變:有些題?會發散,要提?臨場隨機應變的能?
5、技術積累:基礎和經驗相結合
舉個例?:有?家C輪公司的?試官?哥,很直接的說我僅出兩道題,剩下你來
問我:
題?1、輸??個?址?如jd.com到底發?了什么?請你講的越詳細越好
題?2、后端服務如何做性能優化的?講的越詳細越好。
驚不驚喜意不意外啊。。。第?個題?可以考察:?絡、CDN、DNS解析、TCP 三次握?/四次揮?、Http協議。第?個題?可以考察:DB、SQL(索引)、緩存、Tomcat、JVM上等性能優化等等?
說是兩個問題可以擴展出很多個問題,所以要回答的全?且到位,也不是那么容易的對吧。當你提到某個技術優化的時候他會詳細追問如何做的,這哪是兩個問題啊。這家公司也是?過了的,也具備?定的發展潛?,個?也是?常看好的。
??架構師?:JUC問的很多,volatile、synchronized、aqs、cas、鎖升級機
制、閉鎖等等及各中間件原理,反正問的很全?。
以上就是我今天的面試經驗分享哈,希望能跟正在找工作或者以后找工作的同學有幫助,大家有什么問題可以積極留言,或者定個flag,2020年是個不平凡的一年,轉瞬間已經過去一半了,大家一起加油!
總結
以上是生活随笔為你收集整理的【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 触目惊心,超过 8000+ 漏洞 Red
- 下一篇: MySQL 也替换了master、sla