【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)...

公众号后台回复“面试”,获取精品学习资料


扫描下方二维码了解详情,试听课程


《互联网 Java 工程师面试突击(第3季)》重磅升级,由原来的70讲增至150讲,内容扩充一倍,升级部分内容请参见文末

说明:本文来源于中华石杉架构班学员 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 了,也没开源。

【京东架构师】 项问的很详细,说的我很累~ 基本每个项具体实现案、亮点都讲了下,遇到的问题。

具体的技术面

  1. JVM & GC 1)你们JVM线上使⽤的什么垃圾回收算法?CMS、G1

  2. 详细说⼀下CMS垃圾回收算法回收过程?4个阶段

  3. CMS中的remark阶段⽐较慢,怎么分析和解决?

  4. - XX: +CMSScavengeBeforeRemark Remark前提前来⼀次YGC;增加CMS回收的线程数...

  5. 线上如何来分析GC问题?

  6. JVM线上是如何调优的?

  7. 1.7和1.8中jvm内存结构的区别?

  8. 发⽣Full GC时会回收Metaspace空间内存吗?

这里推荐一下「儒猿技术窝JVM专栏」,有不少作者亲身经历的JVM调优实战案例。感兴趣的朋友可以扫码看看,面试来说足够用了。

【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)..._第1张图片

2、数据库

1)锁等待问题如何处理?个事务中调了本地事务,还调了RPC接

我说这涉及了分布式事务了,他说不,把RPC接放在最后...然实际逻辑并不定都这样的...他应该是想问出现死锁、间隙锁问题应该如何来处理,说了下死锁的解决思路,没有太get到点上。

 

3、缓存 & 并发

1)并发下缓存与数据库致性如何保证?

2)并发情况下扣减库存如何处理?如何优化?参考杉架构笔记

3)当队列满了,核线程空闲、扩展线程也空闲,谁从队列获取?

4、JUC 1)为什么线程池要先创建coreSize⼤⼩的核线程?2)线程池中的各个参数的含义解释下?

 

5、框架 & 源码

1)SpringCloud和RPC具体都有哪些区别?

2)SpringCloud中遇到过哪些坑,具体降级了Eureka注册中的坑。

3)最近分钟上报的次数计算错误,bug

4)我保护机制,剔除Down掉服务器并不是90秒,也是个bug,少180秒以上。

 

6、算法题

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)对待加班的看法?

接下来,重磅节选美团的两个部门的面试过程。

【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)..._第2张图片

美团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、问了两道线程池相关问题,觉得没啥问题了 此时,话锋转,咱们聊聊中间件相关吧 【后来听说,家是有个模板^+^ ,都是套路哦~】

【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)..._第3张图片

 

接下来开始问中间件相关:

 

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】

【非广告,纯干货】这大概是我看过最有温度的面经分享(已收割京东美团技术专家offer)..._第4张图片

 

【美团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年是个不平凡的一年,转瞬间已经过去一半了,大家一起加油!

END

《Java工程师面试突击第三季》加餐部分大纲:(注:1-66讲的大纲请扫描文末二维码,在课程详情页获取)

详细的课程内容,大家可以扫描下方二维码了解:

你可能感兴趣的:(分布式,编程语言,面试,java,oom)