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